Tengo dolores de cabeza cuando tengo que escribir casi 10 líneas de código para decir 2 Objects are equal, when their type is equal and both's attribute is equal
. Puede ver fácilmente que en esta forma de escritura el número de líneas aumenta drásticamente con su número de atributos.Java: howto write equals() más corto
public class Id implements Node {
private String name;
public Id(String name) {
this.name = name;
}
public boolean equals(Object o) {
if (o == null)
return false;
if (null == (Id) o)
return false;
Id i = (Id) o;
if ((this.name != null && i.name == null) || (this.name == null && i.name != null))
return false;
return (this.name == null && i.name == null) || this.name.equals(i.name);
}
}
Por favor, consulte mi respuesta para una implementación adecuada de iguales. Lanzar algo al tipo incorrecto le da una excepción de tiempo de ejecución (ClassCastException), no nulo. Por favor, lea java efectivo para una *** explicación *** fantástico. – Tom
Btw - Vinculado al capítulo real en java efectivo en mi respuesta :-). – Tom