Обновлено
Перечитав ваш вопрос, я вижу реальную проблему здесь.В вашем интерфейсе есть два fun1
метода.
public void fun1(String str, Object... objs) // first
и
public void fun1(String str, int i, Object... objs); // second
Проблема в том, что вы вызываете метод вашего класса:
n.fun1("11", 1);
Среда IDE не смогла решить, хотите ли вы вызвать первый метод или ваш второй.
Потому что он может быть первым с автоматическим переносом параметра 1
в объект Integer
.Или это может быть второе, с параметром objs
в качестве пустого массива.
Невозможно исправить это без изменения интерфейса.Мой Java-компилятор (1.6.0_26) может скомпилировать его без каких-либо проблем, и он вызывает ваш второй метод.
Но, как IDE говорит, что это неоднозначно , и это правильно, это определениесбивает с толку и его следует избегать.