2014-03-19 2 views
2

는 어쩌면 바보 같은 질문 : 난 상관 없어이 시점에서Java generics : <?>의 차이점은 무엇인가요?

List<A> aces = list with instances of B and C; 

List<Wrapper> wrapperedItems = flattened list of lists returned from doStuff() on all items in aces 

:하자 내가

abstract class A<T> { 
    List<Wrapper<T>> doStuff() 
} 

이 그리고 내가 갖고 싶어 이제

class B extends A<String>class C extends A<Integer>이 있다고 어떤 유형이 Wrapper 내에 있습니다. 그리고 내 질문은 : 어딘가에서 <?>을 사용해야합니까, 아니면 건너 뛸 수 있습니까? 그 차이점은 무엇입니까?

+0

가능한 [List와 List의 차이] (http://stackoverflow.com/questions/14983489/difference-between-list-and-list) –

+0

http://stackoverflow.com/questions/7360594/whats-the-difference-raw-types-unbounded-wild-cards-and-using-object-i –

답변

1

List<Wrapper<?>>을 사용하면 목록에서 개체를 가져올 수는 있지만 새 항목을 추가 할 수는 없습니다. 와일드 카드는 본질적으로 다른 와일드 카드를 포함하여 다른 유형과 다른 유형과 일치합니다.

List<Wrapper>을 사용하는 경우 목록 항목을 가져오고 새 항목을 추가 할 수 있지만 부적절한 형식 변환을 방지하기 위해 모든 책임은 사용자에게 있습니다.

관련 문제