在java中将实数转换为Comparable?

时间:2013-04-09 20:17:06

标签: java casting numbers integer comparable

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

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

2 个答案:

答案 0 :(得分:4)

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

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);

答案 1 :(得分:0)

如果您传递新的Integer(4)而不是4,假设您使用的是5之前的Java版本(因为您说它不起作用),它应该可以工作。