在java中创建一个泛型对象并使用它创建另一个泛型对象
我正在尝试编写与二叉树相关的代码。为此,我创建了一个名为“Node”的泛型类,并将其用于另一个名为“Tree”的泛型类 Node.java在java中创建一个泛型对象并使用它创建另一个泛型对象,java,generics,elements,Java,Generics,Elements,我正在尝试编写与二叉树相关的代码。为此,我创建了一个名为“Node”的泛型类,并将其用于另一个名为“Tree”的泛型类 Node.java public class Node<T>{ private T element; private Node<T> leftObj; private Node<T> rightObj; public Node(T element){ this.element=element;
public class Node<T>{
private T element;
private Node<T> leftObj;
private Node<T> rightObj;
public Node(T element){
this.element=element;
this.leftObj=null;
this.rightObj=null;
}
//remaining are getter and setter method
}
公共类节点{
私有T元素;
私有节点leftObj;
私有节点rightObj;
公共节点(T元素){
这个元素=元素;
this.leftObj=null;
this.rightObj=null;
}
//剩下的是getter和setter方法
}
Tree.java:
public class Tree<T>{
private Node<T> root;
public Tree(Node<T> node){
this.root=node;
}
// remaining is adding node and deleting node method
}
公共类树{
私有节点根;
公共树(节点){
this.root=节点;
}
//剩下的是添加节点和删除节点方法
}
现在我正试图在另一个类中使用这些类的对象,并且面临着这个问题
java
public class abc{
public static void main(String[] args){
Node<Integer> tempNode = new Node<Integer>(1);
//getting error at following line
Tree<Node<Integer>> tree = new Tree<Node<Integer>>(tempNode);
}
}
公共类abc{
公共静态void main(字符串[]args){
节点tempNode=新节点(1);
//在以下行中获取错误
树=新树(tempNode);
}
}
树对象创建期间显示以下错误:-
The constructor Tree<Node<Integer>>(Node<Integer>) is undefined
构造函数树(节点)未定义
请引导我完成这个问题,并帮助我理解一般概念(我对这个主题是新手)。它不是一个整数节点树。这只是一棵整数树
考虑ArrayList
。这是一个整数列表。它不是整数数组元素的列表(即ArrayList
)
您只需将声明更改为:
Tree<Integer> tree = new Tree<>(tempNode);
您正在向它传递一个不匹配的
节点
,因此出现了编译器错误。您好,Michael,谢谢。但是,如果我要声明这些节点的队列,是否应该将其声明为Queue que=new Queue();或队列que=新队列();仍然有一些困惑。@user2776187您的树是一个树
。整数节点的队列将是队列
。我建议你读一下。谢谢你的回复。我会看一下文件。我尝试了以下方法来声明节点的队列,它对我有效,因此产生了一些混乱:-队列队列=新LinkedList();在这种情况下,您使用的是队列的泛型类型,而不是节点的原始类型。它会给你一个编译器警告,但不是编译错误。这意味着节点可以包含任何对象,而不仅仅是整数。尽可能避免使用原始类型。
public Tree(Node<Node<Integer>> node){