Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: SKalextric en 15 Octubre 2008, 12:08 PM

Título: ¿Fallo de casting?
Publicado por: SKalextric en 15 Octubre 2008, 12:08 PM
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:
Código (java) [Seleccionar]
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.
Título: Re: ¿Fallo de casting?
Publicado por: Casidiablo en 15 Octubre 2008, 16:14 PM
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:


Un saludo!
Título: Re: ¿Fallo de casting?
Publicado por: SKalextric en 15 Octubre 2008, 16:59 PM
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.
Título: Re: ¿Fallo de casting?
Publicado por: juancho77 en 15 Octubre 2008, 19:12 PM
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
Título: Re: ¿Fallo de casting?
Publicado por: SKalextric en 15 Octubre 2008, 19:21 PM
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
Título: Re: ¿Fallo de casting?
Publicado por: sapito169 en 16 Octubre 2008, 06:22 AM
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