Articles

jak používat třídu v Javě?

vše, co víme, je “ všechny instance libovolné třídy sdílí stejnou Javu.lang.Objekt třídy tohoto typu třídy „

např. g)

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

pak a.getClass() == b.getClass() je pravdivý.

nyní předpokládejme

Teacher t = new Teacher();

bez generik je možné níže.

Class studentClassRef = t.getClass();

ale to je teď špatně ..?

např.) public void printStudentClassInfo(Class studentClassRef) {} lze volat pomocí Teacher.class

to lze vyhnout pomocí generik.,

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

Co je to T ?? T je typ, parametry (typ proměnné); odděleny lomených závorkách (<>), následuje název třídy.
t je pouze symbol, jako je název proměnné (může být libovolný název) deklarovaný během zápisu souboru třídy. Později, že T bude nahrazen
platný název Třídy během inicializace (HashMap<String> map = new HashMap<String>();)

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

Class<T> reprezentuje třídu objektu z určité třídy typu ‚T‚.,

Předpokládejme, že vaše metody třídy musí pracovat s neznámými parametry typu jako pod

Zde T může být použit jako String typu jako CarName

NEBO T může být použit jako Integer typu jako modelNumber,

NEBO T může být použit jako Object typu jako platný auto stupně.

zde je výše uvedené jednoduché POJO,které lze použít odlišně za běhu.
sbírky např.) Seznam, Set, Hashmap jsou nejlepší příklady, které budou pracovat s různými objekty podle deklarace T, ale jakmile jsme deklarovali t jako řetězec
e.,g) HashMap<String> map = new HashMap<String>(); pak bude přijímat pouze objekty instance třídy String.

generické metody

generické metody jsou metody, které zavádějí vlastní parametry typu. To je podobné deklaraci generického typu, ale rozsah parametru typu je omezen na metodu, kde je deklarován. Statické a nestatické generické metody jsou povoleny, stejně jako generické konstruktory třídy.

syntaxe pro generickou metodu obsahuje parametr typu, vnitřní Úhlové závorky a zobrazí se před návratovým typem metody., U obecných metod se musí před návratovým typem metody Zobrazit část parametr typu.

Zde <K, V, Z, Y> je prohlášení o typy používané v metodě argumenty, které by před návratový typ, což je boolean zde.

níže; deklarace typu <T> se nevyžaduje na úrovni metody, protože je již deklarována na úrovni třídy.

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

ale níže je špatně, protože parametry typu třídy K, V, Z A Y nelze použít ve statickém kontextu (statická metoda zde).,

DALŠÍ PLATNÉ SCÉNÁŘE JSOU

A konečně Statické metody vždy vyžaduje výslovný <T> prohlášení; Je zvyklý odvodit z úrovně Class<T>. Je to proto, že úroveň třídy T je vázána na instanci.

Přečtěte si také omezení generik

zástupné znaky a podtypy

typ argumentu pro generickou metodu