java - "generic array creation"修复时提示操作不安全

标签 java

下面一行代码导致javac给出不安全操作警告:

LinkedList<Node>[] buckets = new LinkedList[bucketCount];

但是,当我尝试通过这样做来解决这个问题时:

LinkedList<Node>[] buckets = new LinkedList<Node>[bucketCount];

我收到一个通用数组创建错误。我该如何解决这个问题?

最佳答案

简而言之,arrays of generic types are problematic .

buckets 转换为 LinkedListArrayList:

ArrayList<LinkedList<Node>> buckets = new ArrayList<LinkedList<Node>>(bucketCount);
for (int i = 0; i < bucketCount; ++i) {
    buckets.add(new LinkedList<Node>());
}

这样您将获得编译时类型安全。

关于java - "generic array creation"修复时提示操作不安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15568008/

相关文章:

java - 构造函数 Intent 未定义

java - 让 Jackson 将单个 JSON 对象解释为具有一个元素的数组

java - 为什么不能在重写的方法中放宽参数类型?

java - 如何为可变数量的按钮创建操作?

java - MapReduce:将另一个存储桶中的对象映射到键列表(没有链接遍历)?

java - 创建一个对象,然后将其从在 Intent 中传回的数据添加到 ArrayList

java - java 查找常见字符

java - 检查两个字符串是否与字母、数字和特殊字符匹配

java - 使用 TransactionManager 使用 Spring JmsTemplate 编写消息

java - 如何高效使用PreparedStatement?