ошибка с 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

Ответы на вопрос(3)

Ваш ответ на вопрос