Давайте рассмотрим пример
public class C {
public void method(String s, Integer i, Object... o) {
System.out.println("method(String s, Integer i, Object... o)");
}
public void method(Object o, Integer i) {
System.out.println("method(Object o, Integer i)");
}
}
Когда я выполняю
C c = new C();
c.method("1", 1);
Я ожидал, что будет вызвана 1-я реализация method
, но я получил это сообщение напечатанным
method(Object o, Integer i)
Я прочитал из specs , что методы с переменными аргументами (varargs) не рассматриваются в phase 1 , но этот компилятор для меня не интуитивен.