为什么创建SimpleImmutableMap导致未经检查的强制转换警告?

时间:2016-09-08 09:27:19

标签: java generics unchecked-cast

以下非常简单的代码:

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 个答案:

答案 0 :(得分:2)

因为您使用的是raw type。相反,请使用diamond operator

Object o = new AbstractMap.SimpleImmutableEntry<>(e.getKey(), e.getValue());
相关问题