-1
public class CompilerConfuse {
public static void main(String[] args) {
A a =new A();
a.method(null); // error line
}
}
class A
{
public void method(Integer a)
{
System.out.println("In Integer argument method" + a);
}
public void method(Object a)
{
System.out.println("In Object argument method" + a);
}
public void method(String a)
{
System.out.println("In String argument method " + a);
}
}
在整型和字符串重載方法中,編譯器無法決定哪一個調用。爲什麼會發生這種情況?爲什麼編譯器在編譯Java代碼時感到困惑
如果我們刪除String或Integer重載方法中的任何一個,則在傳遞null時不會發生錯誤。
您希望使用哪種超載?這*是不明確的。 – Carcigenicate