<! - ? - >在此特定Java泛型示例中的作用

时间:2016-12-28 14:15:21

标签: java generics wildcard

我正在研究Java泛型,我想知道在这两个代码中使用通配符<?>会有什么不同:

第一

public class Tree<T> {

    private final T node;
    private final Set<Tree<?>> children;

    public Tree(T node, Set<Tree<?>> children) {
        this.node = node;
        this.children = children;
    }

    public static void main(String[] args) {
        Set<Tree<?>> children = new HashSet<>();
        children.add(new Tree<Integer>(new Integer(0), new HashSet<>()));
        children.add(new Tree<String>("asdf", new HashSet<>()));
        Tree<Integer> ti = new Tree<Integer>(new Integer(1), children);
    }
}

第二

public class Tree<T> {

    private final T node;
    private final Set<Tree> children;

    public Tree(T node, Set<Tree> children) {
        this.node = node;
        this.children = children;
    }

    public static void main(String[] args) {
        Set<Tree> children = new HashSet<>();
        children.add(new Tree<Integer>(new Integer(0), new HashSet<>()));
        children.add(new Tree<String>("asdf", new HashSet<>()));
        Tree<Integer> ti = new Tree<Integer>(new Integer(1), children);
    }
}

我写了一个使用该类的简单main,但我对这个类的不同用法产生的差异感兴趣(我没有看到这个main有任何不同。)< / p> 编辑:不知道是否从示例中清楚,但我不一定想要相同类型的树的节点。

0 个答案:

没有答案