Muchas gracias por tu respuesta Roberto!.
Saludos!.
Blog your life in 3D with Windows Live Writer. Get Windows Live-Free
Saludos!.
To: SoloJava@...
From: robert@...
Date: Thu, 22 May 2008 18:23:33 -0430
Subject: Re: [SoloJava] Tonteria de Java
muy interesante la pregunta (tiempo que no se pregunta algo que no es
del tipo "me puedes hacer la tarea" jajajajaj), recuerda que todo lo que
ves con los parámetros variables (...) y las conversiones automáticas
(autoboxing) de y hacia tipos de datos básicos (Integer <---> int) son
un adorno del compilador,
Existen reglas para que el compilador sepa cual tomar tomando en cuenta
cuando hay varargs, autoboxing o parámetros presentes, ejemplo, ¿cual
se invoca aqui?
public static void main(String...p)
{
metodo(1,2);
}
static void metodo(int ... a)
{
out.println("1");
}
static void metodo(int a, int b)
{
out.println("2");
}
el comportamiento sigue esas reglas y aunque parece extraño, la única
recomendación que te puedo dar es la de no hacer mucha sobrecarga de
métodos cuando usas varargs, como dice la gente de Sun en
http://java.sun.com/j2se/ 1.5.0/docs/ guide/language/ varargs.html
"Generally speaking, you should not overload a varargs method, or it
will be difficult for programmers to figure out which overloading gets
called."
NOTA: personalmente detesto autoboxing y hago que el compilador me de un
warning cuando intenta hacerlo, para que yo lo corrija, luego cambio el
código a conversión manual, trae muchos errores por confusión y también
de performance si no se tiene cuidado, por ejemplo muchos autoboxing
dentro de un ciclo
_____________________ _________ _________ _
Robert Marcano
web: http://www.marcanoonline.com/
gpg --keyserver hkp://pgp.mit.edu/ --recv-key 72A0DCFD
Blog your life in 3D with Windows Live Writer. Get Windows Live-Free