Erste Schritte Wildcard Use

enero99

Mitglied
Hallo,
bin gerade dabei mich in Java einzuarbeiten.

Gibt es einen Unterschied zwischen folgende Definitionen?
(wenn ja welche?)
  1. public static void printList(List<?> list) {}
  2. public static void printList(List<? extends Object> list) {}
Gruß und Dank für jede Hilfe!
enero99
 

Joose

Top Contributor
Bei diesem konkreten Beispiel gibt es keinen Unterschied zwischen den Definitionen.

Aber vollständigkeitshalber:
Definition 1 darf eine beliebige Liste übergeben bekommen.
Definition 2 darf nur eine Liste bekommen, deren Elemente von Object ableiten

(Da aber in Java alle Klassen von Object ableiten gibt es für diese Beispiel keinen Unterschied)

Bei folgenden Beispiel gibt es sehr wohl einen Unterschied:
Java:
public class Car {
    public static void printList(List<?> list) { .... }

    public static void printList(List<? extends Car> list { .... }}
 

Ähnliche Java Themen

Neue Themen


Oben