1

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

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
4

2 回答 2

4

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

public class Test {

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

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

即使您使用 raw type 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);
于 2013-04-09T20:19:35.850 回答
0

如果您通过 new Integer(4) 而不是 4 假设您使用的是 5 之前的 Java 版本(正如您所说的它不起作用),它应该可以工作。

于 2013-04-09T20:21:31.470 回答