List<Integer>
과 List<? super Integer>
의 차이점은 무엇입니까?리스트 <Integer>과리스트 간의 차이 <? super Integer>
어떤 것이 좋은 연습인지 또는 무엇을 사용해야 할 때?
List<Integer>
과 List<? super Integer>
의 차이점은 무엇입니까?리스트 <Integer>과리스트 간의 차이 <? super Integer>
어떤 것이 좋은 연습인지 또는 무엇을 사용해야 할 때?
List<Integer>
은이 유형에 Integer
를 경계하는 List
이다. 즉, Integer
을 받고 생산할 수 있습니다.
List<? super Integer>
는 Integer
의 Integer
수퍼 또는 어떤 값을 수용하는 바운드List
이다.
제 2 옵션은 가장 PECS 원리에 (프로듀서 확장을 의미PECS, 소비자 슈퍼)를 사용한다. 이는 실제 유형과 관계없이 유형이 T
인 항목을 추가하려는 경우 유용합니다.
자세한 내용은 관련 게시물 here을 참조하십시오.
List<Integer>
이 가장 좋습니다.
List<? super AbstractObject>
다형성을 다루는 경우 더 좋은 옵션입니다.
가장 큰 차이점은 Integer
유형으로 List<Integer>
의 요소를 가져올 수 있지만 요소가 List<? super Integer>
을 벗어나면 Object
유형 만 얻을 수 있다는 것입니다.
이 경우 '슈퍼'가 작동합니까? –
@Marco Forberg, 예! 달성하고자하는 것에 따라. –
가능한 복제 http://stackoverflow.com/q/3847162/1313143 – MarioDS