如何实例化一个使用扩展嵌套类的泛型的泛型类?

时间:2017-11-03 18:01:28

标签: java generics nodes instance

现在,我有一个导入的二叉树类。首先,我无法创建它的实例,因为构造函数要求在Node中传递参数。问题是Node延伸BTNode<Node>所以我不能像以下那样只将Integer放入通用中。二叉树类如下:

import java.util.LinkedList;
import java.util.Queue;

/**
* An implementation of binary trees
* @author morin
*
* @param <Node>
*/

public class BinaryTree<Node extends BinaryTree.BTNode<Node>> {

    public static class BTNode<Node extends BTNode<Node>> {
        public Node left;
        public Node right;
        public Node parent; 
    }

    protected Node sampleNode;  

    protected Node r;

    public BinaryTree(Node sampleNode) {
        this.sampleNode = sampleNode;
    }

    //Some methods

}

最初,我尝试调用这个类:

BinaryTree<Integer> myTree=new BinaryTree<Integer>();

但有效的方法是Integer而不是BTNode。但困境在于,为了引用BTNode中的BinaryTree,我认为我需要首先实例化BinaryTree。我可以访问BTNode的正确方法是什么,以便将其传递给通用BinaryTree<Node>类?

0 个答案:

没有答案