3

我已经声明了一个这样的数组:

LinkedList< Interval>[] resTable = new LinkedList[10];

我如何以某种方式声明这一点以避免在 eclipse 中显示的类型安全警告?

这是警告:

类型安全:LinkedList[] 类型的表达式需要未经检查的转换才能符合 LinkedList<Interval>[]

4

2 回答 2

4

泛型数组不是类型安全的,因为泛型是通过擦除实现的。

您将需要强制转换以表明它是安全的。

有关更多详细信息,请参阅此问题:如何在 Java 中创建通用数组?

简短回答:考虑使用

ArrayList< LinkedList<Interval> >

反而。ArrayList 类负责泛型,代码干净可靠,不需要未经检查的强制转换。

于 2013-01-11T14:52:26.970 回答
0

它只是一个 Eclipse 警告,您可以忽略或标记为忽略:

@SuppressWarnings({"unchecked"})
LinkedList<Integer>[] tableX = new LinkedList[10];
tableX[3].add(3);

我使用整数而不是间隔,这样我就可以编译代码。

于 2013-01-11T16:21:55.550 回答