Почему создание SimpleImmutableMap вызывает непроверенное предупреждение о приведении?
В следующем довольно простом коде:
public static void test(Map<Externalizable, Externalizable> t){
for(Map.Entry<Externalizable, Externalizable> e : t.entrySet()){
//The next line causes unchecked cast warning
Object o = new AbstractMap.SimpleImmutableEntry(e.getKey(), e.getValue());
}
}
Зачем? AbstractMap.SimpleImmutableMap
это общий класс. В чем дело?
1 ответ
Решение
Потому что вы используете сырой тип. Вместо этого используйте алмазный оператор
Object o = new AbstractMap.SimpleImmutableEntry<>(e.getKey(), e.getValue());