2012-01-04 4 views
0

Кто-нибудь знает, как исправить это предупреждение?непроверенная конверсия на многомерном массиве

MyMain.java:12: warning: [unchecked] unchecked conversion 
found : java.util.ArrayList[][] 
required: java.util.ArrayList<java.lang.String>[][] 
      obj[count].someArrayList = new ArrayList[4][4]; 

Я попытался изменить это:

obj[count].someArrayList = new ArrayList<String>[4][4]; 

Но поправка изменяет предупреждение в следующее сообщение об ошибке:

MyMain.java:12: generic array creation 
      obj[count].someArrayList = new ArrayList<String>[4][4]; 

Декларация someArrayList является:

public ArrayList<String>[][] someArrayList; 
+0

возможно дубликат [Невозможно создать массив LinkedLists в Java? ...] (Http: // stackoverflow.com/questions/217065/cannot-create-an-array-of-linkedlists-in-java) –

ответ

1

Вы не можете создавать массивы с генериками (отсюда и ошибка). Предупреждение указывает на сильно обескураженное использование необработанных типов с помощью ArrayList.

Вместо следующее создает многомерный ArrayList:

public ArrayList<ArrayList<String>> someArrayList;

Вы можете выполнять обычные операции на многомерной ArrayList.

obj[count].someArrayList = new ArrayList<ArrayList<String>>(); 
ArrayList<String> toAdd = new ArrayList<String>(); 
toAdd.add("test"); 
toAdd.add("test2"); 
obj[count].someArrayList.add(toAdd); 
0

Единственный способ объявить многомерный массив из ArrayList, как это:

@SuppressWarnings("unchecked") 
ArrayList<String>[][] someArrayList = new ArrayList[4][4]; 
someArrayList[0][0] = new ArrayList<String>(); 
someArrayList[0][1] = new ArrayList<String>(); 
.... 
.... 
Смежные вопросы