【发布时间】:2015-01-11 15:55:00
【问题描述】:
我正在尝试将 AVLTree 实现转换为堆样式数组,但在使用泛型时遇到了一些问题:
public class MyAVLTree<K extends Comparable<? super K>, E> implements
OrderedDictionary<K, E> {
class AVLNode implements Locator<K, E>{
// ...
}
// ....
public Locator<K,E> [] toBSTArray() {
AVLNode[] bArray = new AVLNode[size];
makeArray(root, 0, bArray); // recursion
return bArray;
}
}
在AVLNode[] bArray = new AVLNode[size]; 行我收到以下错误:
“无法创建 MyAVLTree.AVLNode 的通用数组”
我看不出我做错了什么。有什么帮助吗?
【问题讨论】:
-
这能解决吗:
class AVLNode<K, E> implements Locator<K, E>? -
@vikingsteve 这应该是一个答案
-
@vikingsteve 你只是隐藏了类型变量。我非常怀疑这是想要的。
-
感谢 vikingsteve,这是我的第一个想法,但正如 Radiodef 所说,它并没有真正解决问题。
标签: java arrays generics inner-classes