java – 无法实例化泛型中的类型

前端之家收集整理的这篇文章主要介绍了java – 无法实例化泛型中的类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这门课
public class Tree<T> {

    //List of branches for this tree
    private List<Tree<? super T>> branch = new ArrayList<Tree<? super T>>();
    public Tree(T t){ this.t = t; }
    public void addBranch(Tree< ? super T> src){ branch.add(src); }
    public Tree<? extends T> getBranch(int branchNum){
        return (Tree<? extends T>) branch.get(branchNum);
    }


    private T t;

}

我正在尝试使用此类创建一个变量

public static void main(String[] args){ 
        Tree<? super Number> num2 = new Tree<? super Number>(2);
    }

它给了我这个错误

Cannot instantiate the type Tree<? super Number>

解决方法

虽然实例化泛型应该用相应的对象替换.

例如:

Tree<Integer> num2 = new Tree<Integer>(2);

猜你在找的Java相关文章