1
このような割り当ての理由は何ですか?ワイルドカードを使用した課題の実際のアプリケーションとは何ですか?
List<? extends Fruit> flist = new ArrayList<Apple>();
// flist.add(new Apple());
// flist.add(new Fruit());
// flist.add(new Object());
Appleコンテナをフルーツコンテナにアップキャストすると、その中に何も追加できなくなります。
私たちは何か行うことができます知っている:
List<Apple> basket = new ArrayList<Apple>();
//Fill the basket with tons of juicy apples
List<? extends Fruit> fruitContainer = basket;
をそして、我々はfruitContainer
で開催された要素を使用するフルーツインタフェースを使用することである可能性があります。しかし、の実用的な理由は、後で何も追加できない場合、このようなことをすることができますか?
List<? extends Fruit> flist = new ArrayList<Apple>();
質問は次のようなものです。なぜプログラマはそのようなことをするべきですか? 現実的なシナリオを見つけることができますか? :) – acejazz
@acejazz:私の最初の文章はそれをカバーしています。私はそれを行うための実用的な理由はないと思います。(後で言いますが、実際にリストに何も追加する必要はありません。 –