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);
新代码是旧代码的解决方案吗?任何人都可以对此进行确认。
最佳答案
请注意,a &= b
与a = a & b
相同,出于实际目的,其结果将与a = a && b
相同(除了性能,与a
的值无关,对于b
,也会评估a & b
>,而在a && b
的情况下,如果b
是a
,则不会处理false
)
在此基础上,如果您使用result = Objects.equals(this.exp, systemError.exp);
开始新代码并使用return result;
结束,那么新代码确实可以成为旧代码的解决方案。
如果您仍然有任何了解的问题,请随时告诉我,我将尝试进一步解释。