2016-04-29 6 views
-1

Следующий код:новый ArrayList() как аргумент map.put() - небезопасная операция?

for (String day:daysOfWeek) {classesData.put(day, new ArrayList());} 

дает мне следующую ошибку:

Note: ./com/myname/MyClass/MyClass1.java uses unchecked or unsafe operations.                 
Note: Recompile with -Xlint:unchecked for details. 

мне пришлось вручную комментировать много линий, чтобы увидеть, что код выше был один с ошибкой. Я подозреваю, что это из-за classesData.put(day, new ArrayList());, точнее, new ArrayList(). Я начинаю new ArrayList(), потому что хочу добавить вещи в будущее, сейчас. Я добавляю, как это:

classesData.get(trueDayName).add(hourData); 

(hourData является карта)

потому что classesData является следующая структура данных:

Map<String, List<Map<String, String>>> classesData = new HashMap<String, List<Map<String, String>> >(); 

ответ

0

ArrayList в Java является универсальным типом, и вы опуская generics полностью и используя его как raw type. Я не уверен, но это может быть причиной вашей проблемы.

Попытка: classesData.put(day, new ArrayList<Map<String, String>>());