Generics Flashcards

1
Q

In basiese beginsels, die eerste tipe generics?

A

Waar jy bv n abstract klas extend, en selfs wanneer jy die nuwe objekte skep, skep jy dit as die abstract tipe. Dit laat jou toe om enigiets wat daardie abstract klas extend, in daardie objek te stoor (ek dink hierdie moet interface wees, en nie abstract class - j kan nie net met n abstract class n objek skep nie?)

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

Wat is n generiese parameter, en waarvan moet j seker maak?

A

So n generiese parameter, kan enigiets wees. Daarim moet jy seker maak dat alles wat gebruik maak van daardie parameter, daai metodes het bv.

So tipies, skep n interface, klasse extend dan daardie interface. Dan skep jy n generiese parameter van die interface. Alles wat daardie interface extend, kan dan aangestuur word

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

Hoe lyk die syntax wanneer j n generiese parameter skep?

A

Public class Printer <T>{} So j skep actually n objek tipe van AnimalInterface</T>

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

Waar het j reeds te doen gehad met generics?

A

Met n ArrayList. As jy hom verklaar, dan se j met watter data tipe jy werk, anders kon j dit object maak, dan kan j enigiets daarin stoor. Maar dan sal j later moes type cast, wat nie n goeie praktyk is nie

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

So hoe dra j funskies oor wanneer j met generics werk?

A

Deur te se <T> en seker te maak die generiese metodes is verklaar in die interface</T>

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

Kan j met meer as een tioe generiese data tipe werk?

A

Jip
<T extends Dog, V extends Cat>

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

Hoe werk die bounds op die generiese tipe?

A

<T extends klasNaam & animalInterface & ….>
Kan net een klas extend, maar soveel interfaces as wat jy wil

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

Wat sal n voorbeeld wees van n raw type gebruik?

A

As jy n ArraList skep maar jy define net <object>. Iy moet altyd probeer om in soveel detail as moontlik te gaan</object>

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

Wat is n diamond, en hoe stel mens die compiler op dat jy dot kan gebruik?

A

ArrayList <animal> honde = new ArrayList<>();
Die laaste <> staan bekend as die diamond. Die language wat jy moet gebruik moet 8 of hoer wees. Jy gaan na File - Project Structure - set language to 8</animal>

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

Wat is die ou se groot rede om seker te maak jy gebruik parameterized values?

A

Seker te maak jy tel error reeds in compile time op

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

Kom ons se T is n abstract class, hoe sal jy n klas skep wat enige extension van die abstract klas kan hanteer?

A

Public class SomeClass <T>{
//so T gebruik ek nou as n plekhouer
Public SomeClass (T iets){}</T>

}

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

Casting met T?

A

Dit is moontlik, maar probeer maar wegbly. As j (T player) ontvang:
((Player)player).getName();

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

Hoekom is dit slegte praktyk om te he:
public class SomeClass <T></T>

A

Jy moet T bound anders kan n mens enigiets hier insit, en j gebruikdaardir objek verder. As j nie weet wat dit is nie, hoe gaan j dit gebruik?

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

Wat as een parameterized variable verskeie goed mag wees, hoe verklaar jy dit?

A

<T extends Player & League & Country>
Player is n klas, maar alles wat daarna volg is interfaces

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

In die voorbeel van die league, hoe maak jy seker die regte spanne speel teen mekaar?

A

Public void loadMatch (T opponentTeam, int scoreHome, int scoreOpponent)
Deur die parameterized variable te he, maak jy seker dieselfde span word gelaai as waarmee heeltyd gewerk word

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

Wanneer j class bounding doen <T>, wees versigtig, of probeer wegbly can abstract classes?</T>

A

Jip - want jy kan nie ad hoc objekte dan skep nie, want j mag n n abstract class initialise

17
Q

Kom ons se ons wil he League moet met enige Team kan werk, maar, Team maak weer gebruik van Player as n parameterized tipe, hoe sal jy league verklaar?

A

League <Team<RugbyPlayer>> liga = new League<>();
So dan kan jy net n span laai eat gebruik maak van rugby players</RugbyPlayer>

18
Q

As jy bounded generics doen, en se maar T moet voldoen aan die vereistes van n seker interface, hoe verskil die syntax?

A

So altyd wanneer j met n interface werk, is dit implements. Maar in die geval met bounded generics, moet jy extend. So <T></T>