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