参见英文答案 >
Method Overloading for null argument 7个
我在类中重载了以下两种方法:
public class Test{
public static void main(String []args) throws ParseException{
Test t = new Test();
t.testMethod(null);
}
public void testMethod(Object o){
System.out.println("Object");
}
public void testMethod(String s){
System.out.println("String");
}
}
当我调用方法testMethod时,它会打印“String”.
当我再添加一个重载方法时:
public void testMethod(StringBuilder sb){
System.out.println("String");
}
它抛出了编译器错误:方法testMethod对于类型Test是不明确的.
当我用null调用方法时,所有这些都会发生
我的问题是:
>为什么它打印String而不是Object?
>为什么添加第三种方法时出现编译错误?