Просто из любопытства я попробовал этот пример.Перегрузка метода объекта/струны JAVA
public class Class1 {
public void method(Object obj){
System.out.println("Object");
}
public void method(String str){
System.out.println("String");
}
public static void main(String... arg){
new Class1().method(null);
}
}
Выход «Строка». Я хочу знать, на какой основе JVM решает вызвать метод, беря String в качестве аргумента, а не Object.
Это не ошибка компиляции? Что-то о неоднозначных параметрах? – Thilo
Видимо, нет. Хотелось бы. – Thilo
Ничего неопределенного в этом, @ Тило. Было бы неоднозначно, если бы первый метод принимал 'Integer' и вторую' String', так как тогда ни один из них не был бы «более конкретным», чем другой. – Joni