Benutzer-Werkzeuge

Webseiten-Werkzeuge


anhang:generics:start

Dies ist eine alte Version des Dokuments!


Generische Klassen

Stellen Sie sich eine Klasse Liste vor, die beliebige Objekte speichern kann und beispielsweise Methoden add (hinten hinzufügen) und getFirst (erstes Element zürückliefern) besitzt:

class Liste {
   void add(Object element){ ... }
   Object getFirst(){ ... }
}

Die Klasse Object ist Oberklasse aller Klassen in Java. Damit die Liste beliebige Objekte speichern kann, muss der Parameter von add vom Typ Object sein, ebenso der Rückgabe-Datentyp von getFirst.
Das ist aber ungünstig: Instanziert man beispielsweise eine Liste Liste kundenliste zum Speichern von Objekten der Klasse Kunde, so wünscht man sich, dass kundenliste.add nur Objekte der Klasse Kunde akzeptiert. Außerdem möchte man beispielsweise schreiben können

Kunde k = kundenliste.getFirst();

Der Compiler meldet in diesem Fall einen Fehler, da er nicht weiß, dass in die kundenliste nur Objekte der Klasse Kunde gesteckt werden und kundenliste.getFirst() somit auch nur solche zurückliefern wird.

anhang/generics/start.1733471842.txt.gz · Zuletzt geändert: 2024/12/06 07:57 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki