Problemas con compareTo y equals

sasha13
31 de Octubre del 2005
Como hago un metodo compareTo que reciba un string y retorne un entero y que ademas implemente la interfaz comparable...

Como escribo un equals que reciba Object y luego haga un casting a entero

Gracias!!!

el_danny
31 de Octubre del 2005
bueno para empezar solo las clases pueden implementar interfaces no los metodos.

podrias escribir algo asi

public int compareTo(String parametro)
{
// aqui va el codigo
}

public boolean equals(Object obj){
//para el casting podria ser asi
int entero=(int)obj;
}

espero tesirva



Ronin0
31 de Octubre del 2005
Hola sasha13

Con respecto a la segunda parte de tu pregunta, tienes que tener en cuanta que un objeto y un tipo básico como un entero, no son asignables de ninguna manera, así que int entero=(int)obj te daría fallo en tiempo de compilación.

Evidentemente puedes hacer un casting de un Object a un objeto de tipo Integer, siempre y cuando ese objeto sea de ese tipo, si no es así te daría un error en tiempo de ejecución, si quieres hacerlo aun mas genérico para cualquier tipo de objeto numérico, usa la clase Number, que es la clase padre de BigDecimal, BigInteger, Byte, Double, Float, Integer, Long, Short.

Lo que puedes hacer es lo siguiente, y teniendo en cuanta que es un Objeto de tipo numerico,

public boolean equals(Object obj)
{
// para el casting podría ser así
Number ent=(Number)obj;
int entero=ent.intValue();
// y aquí colocas el resto de tu código.
return ??;
}