Java Reference
In-Depth Information
class: Object
bounds
TypeVariable: T1
class: C
class: A
actual type arguments
raw type
ParameterizedType
base class
B
type parameters
TypeVariable: T1
TypeVariable: T2
bounds
bounds
Bild 2.3 Gr fi sche Darstellung der
generischen Klasse B aus
Listing 2.2
class: Object
class: Object
Zur Vertiefung empfehle ich, das Programm aus Listing 2.3 für weitere Klassen (u. a. auch
mit Wildcards) auszuprobieren und die Ausgabe sorgfältig zu studieren.
Es soll abschließend noch darauf hingewiesen werden, dass das Programm, das Sie von der
Web-Seite beziehen können, noch einige Zeilen Code enthält, die im obigen Listing nicht
gezeigt sind. Es wird nämlich noch geprü , ob eine Typvariable schon einmal behandelt
wurde. Betrachten wir dazu folgendes Beispiel:
class X<T> {}
class Y<T extends X<T>> {}
Bei der Untersuchung der Klasse Y würde das Programm ohne diese Prüfung in eine unend-
liche Rekursion geraten, da beim Ausgeben der Typvariable T auch die obere Grenze X
ausgegeben wird, die die Typvariable T als Parameter besitzt, die dann auch wieder ausge-
geben würde. Dies würde sich unendlich o wiederholen. Dies wird durch die zusätzlich
eingebaute Prüfung jedoch verhindert.
 
Search WWH ::




Custom Search