我建立了一个班级' AbstractTree'并创建另一个类' SearchTree'它扩展了' AbstractTree'。
public class SearchTree<TreeNode> extends AbstractTree<TreeNode> {
TreeNode root;
public SearchTree(){
root=new TreeNode();
}
}
构造方法中发生错误。它说它无法初始化TreeNode类型。
TreeNode是我构建的另一个类。
public class TreeNode<E> extends AbstractNode<E> {
E element;
TreeNode<E> parent;
ArrayList<TreeNode<E>> children;
public TreeNode(){
parent=new TreeNode<E>();
children=new ArrayList<TreeNode<E>>();
}
//...some other methods
}
答案 0 :(得分:0)
您的SearchTree声明有错误。事实上,public class SearchTree<TreeNode> extends AbstractTree<TreeNode> {
使用TreeNode作为泛型类Type参数,而不是您打算在此处使用的TreeNode类。
因此,您调用TreeNode的泛型类型参数现在隐藏了对真实TreeNode类的使用。见附图
因此,我会按以下方式更改您的SearchTree类:
public class SearchTree<E> extends AbstractTree<TreeNode<E>> {
TreeNode<E> root;
public SearchTree()
{
root = new TreeNode<E>();
}
}