2016-09-08 2 views
0

В следующем довольно простой код:Почему создание 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()); 
    } 
    } 

DEMO

Почему? AbstractMap.SimpleImmutableMap - это общий класс. Что не так?

ответ

2

Потому что вы используете raw type. Вместо этого используйте diamond operator

Object o = new AbstractMap.SimpleImmutableEntry<>(e.getKey(), e.getValue()); 
Смежные вопросы