ufff!
¿los foros tienen sentido? Reflexión demasiado trascendental para poder procesarla ---> nosferacento.java.lang Index out of Memory
Y sobre lo de ceporrinos, igual podíamos formar un club... el mundo está lleno de gente como nosotros.
Veamos las cuestiones que planteas, por lo menos para tratar de ir digiriendo algunas:
float foo = -1; No entiendo por que es un float si no tiene el punto no es decimal.
RESPUESTA: partamos de repasar los conceptos de autoboxing y unboxing en Java. Cada tipo primitivo en Java tiene su tipo equivalente objeto. Por ejemplo el primitivo int, el objeto Integer. Estos tipos objeto se denominan "tipos envoltorio".
Hay clases java como ArrayList que solo admiten objetos. ¿Se complica entonces el trabajar con ArrayList de números simples que sean int? Los creadores de Java previeron este problema y para ello crearon lo que se denomina "Autoboxing y unboxing" o "Conversión automática de tipos". El compilador de Java realiza un proceso en segundo plano por el cual cuando se espera un tipo envoltorio y se le pasa un primitivo realiza una conversión para adaptarlo (autoboxing), o al revés, cuando se espera un primitivo y se le pasa un envoltorio, transforma automáticamente el envoltorio evitando que salte un error.
Entonces, el compilador de Java en algunas ocasiones es muy exigente y nos obliga a hacer cosas de forma estricta, y en otros casos nos ayuda realizando conversiones automáticas similares a lo que hemos comentado.
¿Qué pasa cuando ejecutas esto?
public class PerezosoTest {
public static void main (String[] Args){
float foo = -1;
System.out.println ("Probando" +foo);
}
}
Por arte de birlibirloque tú habías escrito -1 y en pantalla te sale Probando -1.0
¿Qué te está devolviendo? Un float
¿Por qué te devuelve un float? Porque el compilador de Java cuando recibe un número entero asignado a una variable float, lo transforma automáticamente.
¿Y cómo se entera uno de estas cosas? Pues haciendo pruebas como esta que te he puesto aquí arriba y dedicándole tiempo. Si los creadores de Java hubieran decidido que en vez de hacer esta conversión automática saltara un error, pues saltaría un error. Quienes no hemos sido los creadores tenemos que averiguarlo.