Как исправить проблемы с гидролокатором для уменьшения количества условных операторов (5), используемых в выражении (максимально допустимое значение 3) в Java - PullRequest
0 голосов
/ 18 октября 2019
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);

Является ли Новый код решением для Старого кода? Может ли кто-нибудь пролить какое-то подтверждение на это.

1 Ответ

2 голосов
/ 18 октября 2019

Обратите внимание, что 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;

Не стесняйтесь, дайте мне знать, если у вас все еще есть проблемы с его пониманием, и я попытаюсь развить мое объяснение немного дальше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...