0

下面的代码有编译问题,有人可以解释一下吗?在这种情况下如何处理 null ?所有 Wrapper 类都给出相同的问题。

public class MyTest {  
public static void main(String[] args) {    
    new MyTest().hello(null);
}

public void hello(Object o){
    System.out.println("object");
}

public void hello(Boolean o){
    System.out.println("Boolean");
}

public void hello(Double o){
    System.out.println("Double");
}
}

所有 Wrapper 类都给出相同的问题:

方法 hello(Object) 对于类型 MyTest 类是不明确的。

4

1 回答 1

0

null它本身并不是一个真正的类型,所以它现在知道要从哪个重载中选择。

你可以试试看(Object) null会发生什么。

除此之外,null 是 Object 和 Double 的适用值,如果您只有一个布尔值和对象(因为它不会选择布尔值),它可能能够计算出来并编译。

于 2013-06-28T10:47:35.730 回答