Почему создание 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 это общий класс. В чем дело?

1 ответ

Решение

Потому что вы используете сырой тип. Вместо этого используйте алмазный оператор

Object o = new AbstractMap.SimpleImmutableEntry<>(e.getKey(), e.getValue());
Другие вопросы по тегам