error con varargs y sobrecarga?
Parece que hay un error en la implementación de Java varargs. Java no puede distinguir el tipo apropiado cuando un método está sobrecargado con diferentes tipos de parámetros vararg.
Me da un errorThe method ... is ambiguous for the type ...
Considere el siguiente código:
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");
}
}
eldocs diga: "En términos generales, no debe sobrecargar un método varargs, o será difícil para los programadores averiguar qué sobrecarga se llama".
sin embargo, no mencionan este error, y no son los programadores los que lo encuentran difícil, es el compilador.
pensamientos?
EDITAR - Compilador: Sun jdk 1.6.0 u18