在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;

我正在尝试编写与二叉树相关的代码。为此,我创建了一个名为“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;

     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){