Java - ayuda please!!! con boolean equals

 
Vista:

ayuda please!!! con boolean equals

Publicado por Kathy (10 intervenciones) el 06/06/2005 05:33:26
hola programadores

estoy haciendo una clase en donde tengo que redefinir la siguiente función:

public boolean equals(Object x){...}

para ello necesito pasar de Object a un objeto de una clase definida por mí (la clase Conjunto"

y para ello hago:

Conjunto a= new Conjunto((String)x)

o sea hago un casting, pues mi constructor recibe strings...

me compila bien,
pero al ejecutarlo me arroja : " Exception in thread "main" java.lang.ClassCastException....."

¿qué hago?? ´si alguien sabe postee please

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda please!!! con boolean equals

Publicado por Kathy (10 intervenciones) el 06/06/2005 08:02:39
ahora lo pude solucionar!!!! :P
pero surgió otro problema, necesito que mi constructor(de la clase Conjunto):
public Conjunto(String x){...}
al recibir un String vacío, devuelva un conjunto vacío...parece muy simple pero no sé por qué no me funciona al colocar:

public Conjunto(String x){
if(x.equals("")==true) conjunto=""; .........}

alguien me puede ayudar???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda please!!! con boolean equals

Publicado por chuidiang (532 intervenciones) el 06/06/2005 09:04:11
Hola:

Para comparar String usa mejor el método compareTo() de la clase String. En vez de x.equals("") usa x.compareTo("")==0

Aunque dicen que en java no hay punteros, en realidad todo son punteros (o referencias). Si x e y son dos String, x.equals(y) comprueba si ambos "apuntan" a la misma cadena, no si las cadenas son iguales. Obviamente, si ambos apuntan a la misma cadena, estas son iguales, pero al revés no es cierto. Es posible que apunten a cadenas distintas, pero estas tengan el mismo contenido.

Si haces
x="hola";
y="hola";

x.equals(y) te dara true porque el compilador de java es lo suficientemente listo como para no repetir "hola" dos veces en memoria, hace una única zona de memoria con "hola" y apunta x e y a ellas.

Sin embargo, si lees "hola" de un fichero o del teclado y lo metes en y, x.equals(y) te dará false.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda please!!! con boolean equals

Publicado por Kathy (10 intervenciones) el 09/06/2005 06:38:28
muchísimas gracias chuidiang, muy explicativo tu post... :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar