Typisierung von Container
Map<String, Set<String>> map = new HashMap<>();
<> heißt Diamantoperator
Gebräuchlich Abkürzungen
T Typ
E Element
Typeinschränkungen
class NewClass<T extends Base & Interface1>
(nach dem & sind nur Interfaces erlaubt)
public static void statMeth(final List<? extends Base> elements)
Äquivalent zu
public static <T extends Base> void statMeth(final List<T> elements
Einschränkungen
Der Compiler löscht die Typen und ersetzt sie durch Objects + casts. Damit sind bei Typ<T> zwei Objekt mit unterschiedlichen Ts typgleich.
Klassen dürfen keine Attribute enthalten, die statisch und generisch sind.
Generische Arrays sind nicht erlaubt:
Pair<T1, T2>
=> p1, p2- Objekte können erzeugt werden
Pair<T1, T2>[] pairs = {p1,p2}
=> Fehler, da Arrays Laufzeit-Infos auswerten. Hier werden diese aber gelöscht.
@SuppressedWarning („unchecked“) bei Generics nur im äußersten Notfall einschalten