我已经声明了一个这样的数组:
LinkedList< Interval>[] resTable = new LinkedList[10];
我如何以某种方式声明这一点以避免在 eclipse 中显示的类型安全警告?
这是警告:
类型安全:LinkedList[] 类型的表达式需要未经检查的转换才能符合 LinkedList<Interval>[]
我已经声明了一个这样的数组:
LinkedList< Interval>[] resTable = new LinkedList[10];
我如何以某种方式声明这一点以避免在 eclipse 中显示的类型安全警告?
这是警告:
类型安全:LinkedList[] 类型的表达式需要未经检查的转换才能符合 LinkedList<Interval>[]
泛型数组不是类型安全的,因为泛型是通过擦除实现的。
您将需要强制转换以表明它是安全的。
有关更多详细信息,请参阅此问题:如何在 Java 中创建通用数组?
简短回答:考虑使用
ArrayList< LinkedList<Interval> >
反而。ArrayList 类负责泛型,代码干净可靠,不需要未经检查的强制转换。
它只是一个 Eclipse 警告,您可以忽略或标记为忽略:
@SuppressWarnings({"unchecked"})
LinkedList<Integer>[] tableX = new LinkedList[10];
tableX[3].add(3);
我使用整数而不是间隔,这样我就可以编译代码。