Generici Flashcards

1
Q

Uvod

A

Uopstavanje apstrakcija->parametrizovani tipovi i postupci
Slicnost sa C++ genericima samo namena
U Javi: -nezavisno prevodjenje
- samo jedan tip bez obzira na broj konkretizacija
- parametrizacija primitivnim tipom nije moguca

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Priroda generika

A

Kod generika se prevodi nezavisno, samo jedna klasa bez obzira na broj poziva generika, konkretizovane klase su u stvari ista klasa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Provera i brisanje tipa

A

Prevodila ubacuje proveru tipa, formalni parametri generickog tipa u celom telu se zamenjuju sa object, vrsi se konverzija u ciljni tip ali je sada bezbedna, u bytecode samo jedan tip za sve pozive generika- raw

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Definisanje genericke klase

A

Genericka klasa moze biti parametrizovana jednim ili pomocu vise tipova koji se pojavljuju kao formalni argumenti generika ciji je doseg sve do kraja klase.
Oni se mogu pojavit u deklaraciji polja, kao povratni tip metoda, kao parametar metoda ili konstruktora, u deklaraciji lok. promenljive, u deklaraciji ugnezdjenog tipa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Ogranicenja u definicijama

A

Formalni parametar se ne moze koristiti kao tip statickog polja, povratna vrednost ili param staticke metode, tip lok. prom u stat metodi, u statickim inicijalizatorskim blokovima-razlog:samo jedna klasa(sirovi)
Takodje, statickom clanu klase se ne moze pristupati preko parametrizovanog imena

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Koriscenje generika

A

Konkretizovani tip ili poziv generika=formalni parametri zamenjeni stvarnim argumentima
Stvarni argumenti mogu biti klase, interfejsi i nizovi(cak i sa elem prim tipa) ali ne i sami primitivni tipovi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Zakljucivanje o tipu

A

Od Jave 7 u pozivu konstruktora se mogu izostaviti argumenti tipa, prevodilac zakljucuje automatski na osnovu izraza sa leve strane =

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Generici i nizovi

A

Argument generika moze biti niz
1. referenci na objekte
2.primitivnog tipa
Ne moze se kreirati niz objekata konkretne genericke klase(moze samo sa object ali nebezbedno)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Generici, izvodjenje u ugnezdjenje

A

Genericka klasa moze biti izvedena iz
1. negenericke
2. konkretizacije generickog tipa
3. sirovog tipa
Genericka klasa ne moze biti podklasa Throwable
Kod udnezdjenih tipova i spoljasnji i udnezdjeni mogu biti genericki ili ne

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Ogranicenje parametara

A

Parametar generika se moze ograniciti sa gornje strane
Stvarni parametar T mora biti podtipa ili tipa svih navedenih tipova

How well did you know this?
1
Not at all
2
3
4
5
Perfectly