La mentira de java

Por José Luis Garrido, el 27 de Marzo del 2017

Buenas lectores, si ya estáis acostumbrados a usar java sabréis que Object incluye dos métodos muy interesantes, equals y clone, pues bien, no son lo que parecen a simple vista.

equals, que recibe un objecto y lo compara con el objeto sobre el que se aplica devuelve true si los dos son iguales, false si no. Por eso hay que usarlo en vez de el famoso == ya que este último compara que los punteros son el mismo, y no el objeto. Sin embargo la implementación de equals es la siguiente.

public boolean equals(Object obj) {
        return (this == obj);
}

Si, usa el doble igual, así que equals si no lo reimplementamos no funcionará con nuestras propias clases, ocurriendo cosas como esta.

La otra perla es clone, que se supone que devuelve un objeto idético al objeto sobre el que se aplica, ahora bien, esta es la realidad.

protected native Object clone() throws CloneNotSupportedException;

Vamos, que está como podía no estarlo. Para empezar ni siquiera hace algo y después lanza una excepción. En la propia documentación dice que

     *The method {@code clone} for class {@code Object} performs a
     * specific cloning operation. First, if the class of this object does
     * not implement the interface {@code Cloneable}, then a
     * {@code CloneNotSupportedException} is thrown.

Así que si quieres que tu objeto se pueda clonar, no olvides implementar la interfaz Cloneable, que digo yo, para que pone clone en Object si necesitabas una interfaz pero bueno, es lo que hay. Tenedlo en cuenta cuando programéis en java.

Nos vemos en el siguiente artículo.

 

¿Te gustó el artículo? Dale like, opina, o comparte ;)

Artículos relacionados

Dame tu voto en HispaBloggers!
Los +1 gustan ;)

Conoce nuestros otros proyectos personales fácilmente entrando en proyecto.jkanetwork.com



Aprender PHP+mysql fácil - Episodio...
[Info] Apk eliminables y no eliminables...
MIRAI NIKKI , sinopsis y...
[Review+Firm] Movil OCU por menos de...

Blogs recomendados



Preferiríamos aceptar donaciones de la gente en vez de usar publicidad, ya que hay que pagar los gastos de un servidor 24/7. ¿No tienes bitcoin? Tutorial de intercambio

Coobis

¿Quieres decirnos algo? Mándanos tus ideas y sugerencias por e-mail, facebook, twitter. Estaremos encantados de oirlas :)