List<vertrag> vertraege = ...
Aber dann wird es ganz schnell kompliziert, weil Generics mit Subtypen inkompatibel sind:
List<Vertrag> vertraege = new List<Bausparvertrag>(); // Compile-Fehler
Und Ruckzuck ist man bei Wildcards:
List <? extends Vertrag> ...
List <? super Bausparvertrag> ...
void <T> foo(List<T extends Vertrag> x) ...
Das scheint mir in der Praxis sehr schwer beherrschbar zu sein. Es sind einfach zuwenig Entwickler fundiert in Typtheorie ausgebildet :-)
Interessant dabei ist, dass dieser ganze komplizierte Overhead nur dazu ist, den Compiler zufrieden zu stellen. Mit dynamischen Programmiersprachen kann man das alles viel einfacher haben.
Wer sich mit Generics in Java befassen will oder muss, findet hier eine gute Einführung.
Post bewerten
Keine Kommentare:
Kommentar veröffentlichen