1.4-Software-Development-Principles

Generics

Je lijst Generic maken

We gaan de lijst die je gemaakt heb in de MyList odpracht aanpassen, dus zorg er voor dat je deze code hebt!

Onze lijst kan elk soort Object bevatten. Op deze manier kan elk referentiedatatype worden opgeslagen in deze List. Dit levert echter wel de nodige problemen op, omdat je nu zowel Integers als Strings kan opslaan in dezelfde List. In de meeste gevallen zorgen dit soort dingen voor (grote) problemen tijdens de ontwikkeling.

Om deze problemen te voorkomen heeft Java de List-interface generiek gemaakt. Aan jou is de opdracht om dit nu ook met je eigen lijst te doen!

Opdracht

Tip

OPMERKING

In java kun je geen array maken van een generiek type. Je kunt echter wel een array van het type Object maken en deze casten naar het generieke type. Dit is niet ‘typesafe’ en zal je een waarschuwing geven. Je kunt deze waarschuwing onderdrukken door @SuppressWarnings("unchecked") toe te voegen boven de methode of class die de waarschuwing bevat. De reden waarom je geen array van een generiek type kunt maken is vanwege type erasure. De compiler weet niet welk type het generieke type zal zijn tijdens runtime. Dit komt door type erasure. De compiler vervangt alle generieke typen door Object. Daarom kun je geen array maken van een generiek type. De compiler weet niet welk type de array runtime moet zijn.

Dus om onze generieke arraylijst te maken, kunnen we Object[] gebruiken als het interne opslagtype.
Omdat al onze publieke interfaces het generieke type gebruiken, mogen we aannemen dat we allen het generieke type van de gebruiker krijgen.