泛型:预期类型的数组



我有以下代码:

public class DEF implements Set<ABC> {
   private EnumSet<ABC> xyz=EnumSet.noneOf(ABC.class);
   @Override
   public <T> T[] toArray(T[] a) {
       return xyz.toArray(a);
   }
}

这给了我以下警告:

类型为"ABC[]"的数组预计在第 43 行

这危险吗?或者我可以忽略它吗?为什么会有这个警告?

警告是完全正确的;你的代码毫无意义。

通过编写 <T> T[] toArray() ,您已经创建了一个可以使用任何类型参数调用的函数,并将返回该类型的数组。
总是返回一个ABC数组会违反你声称它会做的事情。

简而言之,该函数不应是泛型的。


这些都不适用于您的情况,因为基本Set<E>接口需要这样做。

我不知道为什么Set<E>以这种方式声明,但您对警告无能为力。

相关内容

  • 没有找到相关文章

最新更新