-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);
}
}
IntegerとStringのオーバーロードメソッドでは、どちらの呼び出しを行うかをコンパイラが判断できませんでした。コンパイラがJavaコードのコンパイルで混乱する理由
String型またはInteger型のオーバーロードメソッドを削除すると、nullを渡すときにエラーが発生しません。
どのようなオーバーロードを使用すると思いますか?これはあいまいです。 – Carcigenicate