假设我有一种将数字插入二叉树的方法

public BinaryNode insert(Comparable x, BinaryNode t) {
    //Logic here
}

BinaryTree t = new BinaryTree();


我将如何转换数字(例如4)以匹配此方法上正确的参数?例如

t.insert(4, t ) // I know this wont work, but I wanted to to something like this

最佳答案

它应该可以正常工作-装箱成一个整数。样例代码:

public class Test {

    static void foo(Comparable<?> c) {
        System.out.println(c.getClass());
    }

    public static void main(String args[]) throws Exception {
        foo(10);
    }
}


即使您使用原始类型Comparable,此方法也可以工作,尽管我建议您反对这样做。

诚然,我强烈怀疑您最好将您的BinaryNode(可能是BinaryTree)类设为通用,此时您将拥有:

// You shouldn't need to pass in the node - the tree should find it...
BinaryTree<Integer> tree = new BinaryTree<Integer>();
tree.insert(10);

10-08 18:38