내가 대신 목록의 사용 목록을 시도자바 컬렉션 <Object> 또는 컬렉션 <?>
List<?> list = new ArrayList<Integer>();
...
list.add(1); //compile error
내가 잘못 할 방법 정수에 새로운 가치를 던져 무엇? 어쩌면 내가 내 프로젝트에서 목록을 사용합니까?
내가 대신 목록의 사용 목록을 시도자바 컬렉션 <Object> 또는 컬렉션 <?>
List<?> list = new ArrayList<Integer>();
...
list.add(1); //compile error
내가 잘못 할 방법 정수에 새로운 가치를 던져 무엇? 어쩌면 내가 내 프로젝트에서 목록을 사용합니까?
List<?>
은 을 의미하지만 어떤 유형인지는 알 수 없습니다.. 올바른 유형의 객체 만 목록에 넣을 수 있지만 유형을 모르기 때문에 실제로 은 (null
제외)과 같은 목록에 아무것도 넣을 수 없습니다.
변수를 List<Integer>
으로 선언하는 것 외에는 다른 방법이 없습니다.
'Generic >'을 사용할 수있는 시간이 있습니까? 포함하고있는 객체의 유형과 관련이없는 제네릭 클래스의 작업을 수행 할 수 있습니까? (그런 작업은 왜 고립되어 유용할까요?) –
예. 예를 들어, 'Class >'에는 type 매개 변수를 사용하지 않는 많은 메소드가 있습니다. 'List >'('List extends Object>와 동일합니다.)의 경우 크기를 알아 내거나 다른 목록 (또는 비 목록)과 비교하여'Object'를 가져올 수 있습니다. 유형별. –
List<Integer> list = new ArrayList<Integer>();
...
list.add(1);
List<Integer> list = new ArrayList<Integer>();
일반 유형 항상도 동일해야한다.
List<?> list = new ArrayList<Integer>();
? 어떤 타입을 의미하기 때문에 Type을 Integer로 지정해야합니다. 올바른 구문은 다음과 같습니다.
List<Integer> list = new ArrayList<Integer>();
목록을 목록으로 선언 할 수없는 이유가 있습니까? –
리스트보기 = 새로운 ArrayList(); –
nidhin
@nidhin - 원시 타입을 사용하는 것은 바람직하지 않습니다. –