У меня есть следующие 2 методы перегруженных в классе:метод перегрузки и передачи нуль
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");
}
Он бросает мне компилятор ошибки: The method testMethod is ambigous for type Test
..
Все это происходит, когда я вызываю метод с null
Мои вопросы:
- Почему это печатает Строка, а не объект ?
- Почему возникает ошибка компиляции при добавлении третьего метода?
Помимо вашего конкретного вопроса, я предлагаю вам избегать наличия одной подписи с объектом parm и другими с определенным типом данных. Было бы неплохо, если бы это было уловкой, но они обычно скрывают ловушки. –