DarthShader
Erfahrenes Mitglied
Hallo zusammen,
ich habe eine Frage zu Java Generics.
Folgendes funktioniert:
Dieses jedoch nicht:
Ich dachte, "? extends Object" würde bedeuten, dass es eine Liste von Objekten ist, die von "Object" ableiten? Also sprichwörtlich "irgendwas, was Object erweitert"?
Allerdings kompiliert das zweite Beispiel nicht - wo ist der Unterschied?
(Das Beispiel hat natürlich keinen wirklichen Sinn, es soll nur exemplarisch den Unterschied "kompiliert" und "kompiliert nicht" darstellen.)
Über Eure Hilfe würde ich mich sehr freuen
Vielen Dank!
ich habe eine Frage zu Java Generics.
Folgendes funktioniert:
Java:
List< Object > objects = new ArrayList< Object >();
objects.add( new String( "123" ) );
Dieses jedoch nicht:
Java:
List< ? extends Object > objects = new ArrayList< Object >();
objects.add( new String( "123" ) );
Ich dachte, "? extends Object" würde bedeuten, dass es eine Liste von Objekten ist, die von "Object" ableiten? Also sprichwörtlich "irgendwas, was Object erweitert"?
Allerdings kompiliert das zweite Beispiel nicht - wo ist der Unterschied?
(Das Beispiel hat natürlich keinen wirklichen Sinn, es soll nur exemplarisch den Unterschied "kompiliert" und "kompiliert nicht" darstellen.)
Über Eure Hilfe würde ich mich sehr freuen
Vielen Dank!