Problemas con compareTo y equals
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!!!
Como escribo un equals que reciba Object y luego haga un casting a entero
Gracias!!!
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
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
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 ??;
}
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 ??;
}
