Todos los generados webservice-talones de nuestro backend tienen una igual método similar a éste:iguales generados en servicio web del trozo
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof PropertyData)) return false;
PropertyData other = (PropertyData) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = true &&
((this.key==null && other.getKey()==null) ||
(this.key!=null &&
this.key.equals(other.getKey()))) &&
((this.value==null && other.getValue()==null) ||
(this.value!=null &&
this.value.equals(other.getValue())));
__equalsCalc = null;
return _equals;
}
¿Puede alguien explicarme la purpoise de __equalsCalc
? Simplemente no entiendo. No se usa en otro lugar en la clase. De la forma en que lo veo, no es nulo exactamente durante el cálculo de la "igualdad". Sin embargo, los iguales se declaran synchronized
. Por lo tanto, solo puede haber un hilo en un momento dado. No puedo ver, ¿por qué if (__equalsCalc != null)
debería ser verdad?
Por favor, muéstrame mi estúpida malentendido ;-)
EDIT: Soy nuevo en el proyecto y por lo tanto mi respuesta puede estar equivocado. Pero si trazo correctamente, el método se genera por el eje-wsdl2java
Supongo que tiene algo que ver con la recursión ... Pero no puedo entender qué es exactamente lo que intenta lograr –
Por cierto, parece al igual que el código generado por WSDL2Java (http://www.google.com/search?q=__equalsCalc) –
¿Cree que la segunda verificación nula es redundante ?: if (obj == null) return false; http://codereview.stackexchange.com/questions/102669/null-check-in-equals-implementation –