ObjectTest systemError = (ObjectTest ) o;
//New Code 
result &= Objects.equals(this.exp1, systemError.exp1);
result &= Objects.equals(this.exp2, systemError.exp2)  ;
result &= Objects.equals(this.exp3, systemError.exp3);
result &= Objects.equals(this.exp4, systemError.exp4);
result &= Objects.equals(this.exp5, systemError.exp5) ;
result &= Objects.equals(this.exp6, systemError.exp6);
return result;
//Old Code
return Objects.equals(this.exp, systemError.exp) &&
Objects.equals(this.exp1, systemError.exp1) &&
Objects.equals(this.exp2, systemError.exp2) &&
Objects.equals(this.exp3, systemError.exp3) &&
Objects.equals(this.exp4, systemError.exp4) &&
Objects.equals(this.exp5, systemError.exp5) &&
Objects.equals(this.exp6, systemError.exp6);

¿El código nuevo es la solución para el código antiguo? ¿Alguien puede arrojar alguna confirmación sobre esto?

1
Pradeep 18 oct. 2019 a las 00:35

1 respuesta

La mejor respuesta

Tenga en cuenta que a &= b es igual que a = a & b, que tendrá el mismo resultado que a = a && b para fines prácticos (excepto por el rendimiento independientemente del valor de a, {{X4} } también se evaluará en el caso de a & b mientras que en el caso de a && b, b no se procesará si a es false)

Sobre esta base, su nuevo código puede ser la solución para el código anterior siempre que comience su nuevo código con result = Objects.equals(this.exp, systemError.exp); y termine con return result;

No dudes en avisarme si todavía tienes algún problema para entenderlo y trataré de elaborar mi explicación un poco más.

1
Arvind Kumar Avinash 17 oct. 2019 a las 21:54