ошибка с varargs и перегрузкой?
Кажется, есть ошибка в реализации Java varargs. Java не может различить соответствующий тип, когда метод перегружен различными типами параметров vararg.
Это дает мне ошибкуThe method ... is ambiguous for the type ...
Рассмотрим следующий код:
public class Test
{
public static void main(String[] args) throws Throwable
{
doit(new int[]{1, 2}); // <- no problem
doit(new double[]{1.2, 2.2}); // <- no problem
doit(1.2f, 2.2f); // <- no problem
doit(1.2d, 2.2d); // <- no problem
doit(1, 2); // <- The method doit(double[]) is ambiguous for the type Test
}
public static void doit(double... ds)
{
System.out.println("doubles");
}
public static void doit(int... is)
{
System.out.println("ints");
}
}
документы скажем: «Вообще говоря, вы не должны перегружать метод varargs, иначе программистам будет сложно понять, какая перегрузка вызывается».
однако они не упоминают об этой ошибке, и это не программисты находят это трудным, это компилятор.
мысли?
РЕДАКТИРОВАТЬ - Компилятор: Sun JDK 1.6.0 U18