Articles

hogyan kell használni osztály Java?

csak annyit tudunk, hogy ” minden esetben egy bármely osztály osztja ugyanazt a java.lang.A”

e.g)

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

akkor a.getClass() == b.getClass() igaz.

most feltételezzük, hogy

Teacher t = new Teacher();

generikumok nélkül az alábbi lehetséges.

Class studentClassRef = t.getClass();

de ez most rossz..?

pl.)public void printStudentClassInfo(Class studentClassRef) {}Teacher.class

ez elkerülhető generikumok alkalmazásával.,

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

most mi a T ?? T típusparaméterek (más néven típusváltozók); szögletes zárójelekkel határolva (<>), az osztály nevét követi.
t csak egy szimbólum, mint egy változó név (Bármilyen név lehet), amelyet az osztályfájl írása során deklarálnak. Később, hogy a t az inicializálás során
érvényes Osztálynévvel lesz helyettesítve (HashMap<String> map = new HashMap<String>();)

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

tehát Class<T> egy adott osztálytípusú osztályobjektumot jelent ‘T“.,

feltételezzük, hogy az osztály módszereinek ismeretlen típusparaméterekkel kell működniük, mint például az alábbi

Itt t lehet használni, mint String Típus mint CarName

vagy T lehet használni, mint Integer típus modelNumber,

vagy T lehet használni, mint Object típus érvényes autópéldányként.

most itt a fenti az egyszerű POJO, amely lehet használni másképp futási időben.
gyűjtemények pl.) lista, készlet, Hashmap a legjobb példa, amely működni fog a különböző objektumok, mint egy nyilatkozat T, de ha egyszer deklaráltuk t String
e.,g) HashMap<String> map = new HashMap<String>(); akkor csak a String Class példány objektumokat fogadja el.

Generic Methods

Generic methods are methods that Introduction their own type parameters. Ez hasonló a generikus típus deklarálásához, de a típusparaméter hatóköre a deklarált módszerre korlátozódik. Statikus és nem statikus Generikus módszerek, valamint generikus osztály konstruktorok megengedettek.

egy általános módszer szintaxisa tartalmaz egy típusparamétert, szögletes zárójelben, és a módszer visszatérési típusa előtt jelenik meg., Általános módszerek esetén a típusparaméter szakasznak meg kell jelennie a módszer visszatérési típusa előtt.

itt <K, V, Z, Y> a módszer argumentumaiban használt típusok deklarációja, amelynek a boolean itt kell lennie.

az alábbiakban; type declaration nem szükséges a módszer szintjén, mivel azt már osztályszinten deklarálták.

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

de alul hibás, mivel a K, V, Z és Y osztályszintű típusparaméterek statikus kontextusban nem használhatók (statikus módszer itt).,

egyéb érvényes forgatókönyvek:

és végül statikus metódus mindig explicit deklarációt igényel; nem aClass<T>osztályszintből származik. Ennek oka az, hogy a T osztály szintje a példányhoz van kötve.

olvassa el a generikumok korlátozásait is

helyettesítő karakterek és altípus

típus argumentum egy általános módszerhez