Was ist der Grund für eine solche Aufgabe?Was ist die praktische Anwendung einer Zuweisung mit einem Platzhalter?
List<? extends Fruit> flist = new ArrayList<Apple>();
// flist.add(new Apple());
// flist.add(new Fruit());
// flist.add(new Object());
Sobald wir den Apple-Container in einem Obst-Container "upcast", können wir nichts hinzufügen.
weiß ich, dass wir so etwas wie tun könnte:
List<Apple> basket = new ArrayList<Apple>();
//Fill the basket with tons of juicy apples
List<? extends Fruit> fruitContainer = basket;
Und dann könnten wir die Frucht Schnittstelle zu verwenden Lage sein, die Elemente von fruitContainer
gehalten zu verwenden. Aber was kann der praktische Grund sein, etwas so zu tun, wenn wir nichts später hinzufügen können?
List<? extends Fruit> flist = new ArrayList<Apple>();
Die Frage ist: Warum sollte ein Programmierer so etwas tun? Können Sie ein realistisches Szenario finden? :) – acejazz
@acejazz: Mein erster Satz deckt das ab: Ich denke nicht, dass es einen praktischen Grund dafür gibt (es sei denn, wie ich später sage, du musst nichts wirklich zu der Liste hinzufügen). –