Java Reference
In-Depth Information
1
Generics
Generics werden in diesem Buch besprochen, da das Thema Refl ection, welches im folgen-
den Kapitel behandelt wird, zum einen Generics benutzt, zum anderen aber durch sie ein
gutes Stück umfangreicher und komplizierter geworden ist und ohne Kenntnisse von Gene-
rics nicht in der Tiefe verstanden werden kann. Generics sind ein schönes Beispiel dafür,
wie eine kleine, scheinbar harmlose Erweiterung einer Programmiersprache eine ganze
Reihe von Konsequenzen hat, die auf den ersten Blick ganz und gar nicht off ensichtlich
sind. Insofern ist es sehr lehrreich, sich mit Generics näher auseinanderzusetzen.
1 1 Einleitung und Motivation
Vor der Einführung des Generics-Sprachkonzepts durch Java 5 sah die Klasse ArrayList
beispielsweise so aus (stark verkürzt):
public class ArrayList
{
public boolean add(Object o) {...}
public Object get(int index) {...}
}
Damit konnten in einer ArrayList Objekte jeder beliebigen Klasse gespeichert werden. Es ist
aber z.
B. nicht möglich, die Benutzung so einzuschränken, dass in einem bestimmten
ArrayList-Objekt nur Integers und in einem anderen nur Strings gespeichert werden dür-
fen. Seit Java 5 ist dies möglich. Eine ArrayList sieht jetzt so aus (wieder stark verkürzt):
public class ArrayList<T>
{
public boolean add(T o) {...}
public T get(int index) {...}
}
T ist dabei ein (formaler) Typparameter für die Klasse ArrayList. Beim Erzeugen eines
ArrayList-Objekts muss T konkretisiert werden (z. B. durch die Klasse Integer):
ArrayList<Integer> intArray = new ArrayList<Integer>();
 
Search WWH ::




Custom Search