In Java-Typ-Argumente, tut? erstreckt sich E nur streng unter Subtypen? oder würde E auch genügen?

8

Bedeutet in Java-Typ-Argumenten streng nur Subtypen? oder würde E auch genügen?

    
Aaron Fi 28.06.2010, 22:43
quelle

3 Antworten

6

Ja, super und extends gibt jeweils untere und obere Grenzen.

Hier ist ein Zitat aus Angelika Langers Generics FAQ :

  

Was ist ein begrenzter Platzhalter?

     

Ein Platzhalter mit einer oberen Grenze sieht wie ? extends Type aus und steht für die Familie aller Typen, die Subtypen von Type sind, wobei Type enthalten ist. Type wird als obere Grenze bezeichnet.

     

Ein Platzhalter mit einer unteren Grenze sieht wie ? super Type aus und steht für die Familie aller Typen, die Obertypen von Type sind, wobei Type enthalten ist . Type wird als untere Grenze bezeichnet.

    
polygenelubricants 29.06.2010, 07:51
quelle
8

Es ist nicht streng; E würde ausreichen.

    
Matt McHenry 28.06.2010 22:47
quelle
1
%Vor%

Beide Zeilen kompilieren ohne Fehler. Jede Funktion, die die Liste als Parameter akzeptiert, versteht, dass die Objekte in der Liste vom Typ E oder einem Subtyp von E sind.

    
frictionlesspulley 29.06.2010 05:12
quelle