einiger einfacher generischer Schnittstellen und Klassen
publicinterfaceList<E>{
voidadd(Ex);
Iterator<E>iterator();
}
publicinterfaceIterator<E>{
Enext();
booleanhasNext();
}
Anwendung
List<Integer>l= ...;
?
Bedeutung?
anschaulich
in dem Java-Code wird überall für den formalen Typparameter E
der aktuelle Typ Integer eingesetzt.
Der entstandende Code ist normaler Java-Code, die Bedeutung damit bekannt.
publicinterfaceListOfInteger{
voidadd(Integerx);
IteratorOfIntegeriterator();
}
publicinterfaceIteratorOfInteger{
Integernext();
booleanhasNext();
}
ListOfIntegerl= ...;
Nur ein Gedankenmodell!
Keine Implementierungsstrategie (für Java)
In dem generischen Code sind keine Eigenschaften über die generischen Größen bekannt,
außer dass sie die Methoden aus Object implementieren.