이와 같은 과제가 발생한 이유는 무엇입니까?와일드 카드와 관련된 과제의 실제 적용은 무엇입니까?
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 : 첫 번째 문장은 다음과 같은 내용을 다루고 있습니다. 나는 그것을 수행 할 실용적인 이유가 없다고 생각합니다. (내가 나중에 말하면 실제로 목록에 아무것도 추가 할 필요가 없다면). –