Articles

Kuinka käyttää luokkaa Java?

kaikki mitä tiedämme on ”kaikki tapaukset, joissa jokin luokka jakaa saman Javan.lang.Luokan object, että tyyppi luokan”

e.g)

Student a = new Student();Student b = new Student();

Sitten a.getClass() == b.getClass() on totta.

Nyt oletamme

Teacher t = new Teacher();

ilman geneeristen alla on mahdollista.

Class studentClassRef = t.getClass();

Mutta tämä on väärin nyt ..?

e.g) public void printStudentClassInfo(Class studentClassRef) {} voidaan kutsua Teacher.class

Tämä voidaan välttää käyttämällä geneerisiä.,

Class<Student> studentClassRef = t.getClass(); //Compilation error.

Nyt mikä on T ?? T on tyyppi parametrit (kutsutaan myös tyypin muuttujat); rajaamaa kulmasulkeet (<>), seuraa luokan nimi.
T on vain symboli, kuten muuttujan nimi (voi olla mikä tahansa nimi), joka ilmoitetaan luokkatiedoston kirjoittamisen aikana. Myöhemmin, että T on substituoitu
pätevä Luokan nimi alustuksen (HashMap<String> map = new HashMap<String>();)

e.g) class name<T1, T2, ..., Tn>

Class<T> edustaa luokan objekti tietyn luokan tyyppinen ’T’.,

Oletetaan, että luokan menetelmiä on työskennellä tuntematon tyyppi parametrit kuten alla.

Tässä T voidaan käyttää String tyyppi kuin CarName

TAI T voidaan käyttää Integer tyyppi kuin modelNumber,

TAI T voidaan käyttää Object kirjoita voimassa auton esimerkiksi.

tässä edellä on yksinkertainen ILOKSI, joita voidaan käyttää eri runtime.
Kokoelmat e.g) Luettelo, Asettaa, Hashmap ovat parhaita esimerkkejä, jotka toimivat eri esineitä kohti julistuksen T, mutta kun me julisti T as String
e.,g) HashMap<String> map = new HashMap<String>(); sitten se hyväksyy vain String Class instance-objektit.

geneeriset menetelmät

geneeriset menetelmät ovat menetelmiä, jotka ottavat käyttöön omat tyyppiparametrinsa. Tämä on samankaltainen kuin yleisluontoisen tyypin ilmoittaminen, mutta tyyppiparametrin soveltamisala rajoittuu menetelmään, jossa se ilmoitetaan. Staattiset ja ei-staattiset geneeriset menetelmät ovat sallittuja, samoin kuin geneeriset luokan konstruktorit.

– syntaksi a-yleinen menetelmä sisältää tyyppi-parametrin sisällä kulma suluissa, ja näkyy ennen metodin paluuarvon tyyppi., Yleisissä menetelmissä tyyppiparametriosion on oltava ennen menetelmän palautustyyppiä.

Täältä <K, V, Z, Y> on ilmoitus tyypit menetelmässä käytetään argumentteja, jotka olisi ennen paluuta tyyppi, joka on boolean täällä.

alla; tyyppi ilmoitus <T> ei tarvita silloin, menetelmän taso, koska se on jo ilmoitettu klo luokan tasolla.

class MyClass<T> { private T myMethod(T a){ return a; }}

Mutta alla on väärässä luokan-tason tyyppi parametrit K, V, Z ja Y ei voi käyttää staattista yhteydessä (staattinen menetelmä täällä).,

MUUT VOIMASSA olevat SKENAARIOT OVAT

Ja lopulta Staattinen menetelmä tarvitsee aina nimenomaista <T> ilmoitus; Se ei perustu luokan tasolla Class<T>. Tämä johtuu siitä, että luokka T on sidottu esimerkiksi.

lue Myös Rajoituksia Geneeristen

Yleismerkkejä ja Alatyypitys

tyyppi argumentti on yleinen menetelmä