假设我有一个将数字插入二叉树的方法
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 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);
}
}
即使您使用 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);
如果您通过 new Integer(4) 而不是 4 假设您使用的是 5 之前的 Java 版本(正如您所说的它不起作用),它应该可以工作。