Hola gente, os comento un problemilla, acabo de llegar de la facultad y de estar dandole al eclipse, y al pasarme a mi portatil el proyecto con el que estaba trabajando, de repente me salen errores con los tipos.
Os pongo un ejemplo:
public class RacionalImpl implements Racional {
private Integer den;
private Integer num;
public RacionalImpl (Integer num1, Integer den1){
den=num1;
num=num1;
}
public RacionalImpl (){
den=1; <---- Fallo
num=0; <----Fallo
}
public RacionalImpl (Integer num1){
num=num1;
den=1; <---- Fallo
}
//Consultores
public Integer getDenominador() {
return den;
}
public Integer getNumerador() {
return num;
}
public void setDenominador(Integer den) {
this.den=den;
}
public void setNumerador(Integer num) {
this.num=num;
Donde pone "<--- Fallo" eclipse me cuenta esta historia: "Type mismatch cannot convert from int to Integer". No se si será devido a la clase envoltura esta o si es del JDK, a ver si podeis ayudarme. Gracias.
Pues no te debería haber funcionado en la facultad, o al menos eso creo. Ten en cuenta que si haces algo como:
den=1;
den es un
objeto de tipo Integer, mientras que 1 es un dato
primitivo tipo int. Tienes dos maneras de solucionarlo:
- O declaras los datos como int (cambias Integer den; por int den;)
- O en vez de hacer esto: den=1; haces esto: den=new Integer(1);
Un saludo!
Acabo de ponerme en windows y no da error de ningún tipo y funciona correcto, estoy pensando que pueda ser del JDK de linux.
Según me ha comentado el profesor cuando introduces Integer automáticamente crea el objeto según me has dicho "den=new Integer(1);", de ahi que no use el tipo primitivo.
Pero ya te digo funcionar, funciona, porque hemos estao trapicheando asi en clase hoy.
Si, depende de la version del compilador de Java, no si estas en Windows o Linux o Solaris. El tema del casting es de constante discusion y sufre modificaciones entre versiones.
Saludos
Hombre ya lo que queda es el compilador, pero es que tengo la misma version en ambos casos. Total mientras alguno me vaya voy servido. Gracias a todos.
Modifico y dejo de dar por culo: Lo he arreglao me faltaba un paquete :-[ . Gracias a los dos :P
cunado creas una variable integer
Integer a;
esa variable integer deve recivir un intger no un int
en las ultimas versiones d java la 6 una clase puede ser igualda a un tipo primitivo sin ningun proble te lo castea automatico