下面一行代码导致javac
给出不安全操作警告:
LinkedList<Node>[] buckets = new LinkedList[bucketCount];
但是,当我尝试通过这样做来解决这个问题时:
LinkedList<Node>[] buckets = new LinkedList<Node>[bucketCount];
我收到一个通用数组创建
错误。我该如何解决这个问题?
最佳答案
简而言之,arrays of generic types are problematic .
将 buckets
转换为 LinkedList
的 ArrayList
:
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/