Articles

– Hvordan å bruke Klasse i Java?

Alle vet vi er «Alle forekomster av en hvilken som helst klasse deler den samme java.lang.Klasse objektet av denne typen av klasse»

e.g)

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

a.getClass() == b.getClass() er sant.

Nå anta

Teacher t = new Teacher();

uten generiske nedenfor er mulig.

Class studentClassRef = t.getClass();

Men dette er feil nå ..?

e.g) public void printStudentClassInfo(Class studentClassRef) {} kan bli kalt med Teacher.class

Dette kan unngås ved å bruke generiske legemidler.,

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

Nå hva er T ?? T er av type parametre (også kalt type variabler); avgrenset av vinkelparenteser (<>), følger klasse navn.
T er bare et symbol, som en variabel navn (kan være et hvilket som helst navn) erklærte under skriving av klasse-fil. Senere at T vil bli erstattet med
gyldig Klasse navn under initialisering (HashMap<String> map = new HashMap<String>();)

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

Class<T> representerer et objekt av klassen bestemt klasse, type ‘T‘.,

Anta at din klasse metoder har til å arbeide med ukjent type parametere som under

Her T kan brukes som String type som CarName

ELLER T kan brukes som Integer type som modelNumber,

ELLER T kan brukes som Object type som gyldig bil eksempel.

Nå her over er det enkle POJO som kan bli brukt annerledes ved kjøring.
Samlinger e.g) Listen, Angi, Hashmap er beste eksemplene som vil arbeide med ulike gjenstander som angitt i erklæringen av T, men når vi erklært T som String
e.,g) HashMap<String> map = new HashMap<String>(); Så vil det bare godta String Klasse forekomst objekter.

Generiske Metoder

Generiske metoder er metoder som introduserer sin egen type parametere. Dette ligner på å erklære en generisk type, men parameter ‘ s anvendelsesområde er begrenset til den metoden der den er deklarert. Statiske og ikke-statiske generiske metoder er tillatt, samt generisk klasse konstruktører.

syntaksen for en generisk metode inkluderer en parameter, inne i vinkelparenteser, og vises før metoden er tilbake type., For generiske metoder, parameter-delen må vises før metoden er tilbake type.

Her <K, V, Z, Y> er erklæringen av typer som brukes i metoden argumenter som bør før retur typen som er boolean her.

I de nedenfor; type erklæring <T> er ikke nødvendig ved metoden nivå, siden den allerede er deklarert i klassen nivå.

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

Men nedenfor er feil som klasse-nivå type parametre K, V, Z og Y kan ikke brukes i et statisk perspektiv (statisk metode her).,

ANDRE GYLDIG SCENARIER

Og til slutt Statisk metode trenger alltid eksplisitt <T> erklæring; Det vil ikke stammer fra klasse nivå Class<T>. Dette er på grunn av Klasse nivå T er bundet med eksempel.

les Også Restriksjoner på Generiske

Jokertegn og Subtyping

type argument for en generisk metode