new ArrayList() 作为 map.put() 的参数是不安全的操作?
new ArrayList() as an argument to a map.put() is an unsafe operation?
以下代码:
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>> >();
Java 中的 ArrayList
是泛型类型,您完全省略了泛型并将其用作 raw type。我不确定,但这可能是您遇到问题的原因。
尝试:classesData.put(day, new ArrayList<Map<String, String>>());
以下代码:
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>> >();
ArrayList
是泛型类型,您完全省略了泛型并将其用作 raw type。我不确定,但这可能是您遇到问题的原因。
尝试:classesData.put(day, new ArrayList<Map<String, String>>());