2014-01-21 3 views
0

4 개의 문자열리스트를 인덱스 0-3의 배열에 저장하고 인덱스가 채워 졌는지 (! = null) 확인하고 싶습니다. 내가 메시지와 함께 이클립스 실패 유형 목록의 배열을 초기화 할 필요가있는 이유 "목록의 일반적인 배열을 만들 수 없습니다"를 리스트 배열 초기화하기 <String> 오브젝트

:

// Does not work 
List<String>[] myArray = new List<String>[4]; 

// Does not work 
List<String>[] myArray = new ArrayList<String>[4]; 

그 일이 Convert an ArrayList to an object array에서 승진 같은 :

ArrayList<List<String>> myArrayList = new ArrayList<List<String>>(); 
myArrayList.add(new ArrayList<String>()); 
myArrayList.add(new ArrayList<String>()); 
myArrayList.add(new ArrayList<String>()); 
myArrayList.add(new ArrayList<String>()); 

// Does not work 
List<String>[] myArray = myArrayList.toArray(new List<String>[myArrayList.size()]); 

// Does not work 
List<String>[] myArray = myArrayList.toArray(new ArrayList<String [myArrayList.size()]); 

하지만 왜 이것이 작동하지 않습니까?

+0

가능한 중복 (http://stackoverflow.com/questions/10227201/initialize-an-array-of-arraylist) –

+1

Java에서 "일반 배열을 만들 수 없습니다". 이것은 배열 유형의 재사용 가능성과 일반 유형 매개 변수의 비 검증 가능성 사이의 불일치와 관련이있는 디자인 선택이었습니다. –

+2

Cuck Norris 만 인터페이스를 시작할 수 있습니다. 새 목록 [myArrayList.size()] !!! :-) –

답변

0

ArrayList은 Java의 일반 클래스입니다. 제네릭 형식의 배열을 만들 수 없습니다. 허용되지 않습니다. 당신이 할 수있는 것은 제네릭 형식의 목록을 만드는 것입니다

ArrayList<ArrayList<String>> listOfStringList = new ArrayList<ArrayList<String>>(); 
[ArrayList에의 배열을 초기화]의
+0

답변 해 주셔서 감사합니다! 이것에도 불구하고 그것은 내 머리 속에 들어 가지 않습니다. 왜 자바가 그것을 허용하지 않고 있습니다. –

+0

이것이 설계상의 선택 일 수 있습니다. 이전 버전과의 호환성, 타입 캐스팅 문제 등과 같은 문제를 야기합니다. – Keerthivasan

+0

이해하는데 도움이 되었습니까? – Keerthivasan