Установка логического поля методом return - PullRequest
0 голосов
/ 10 декабря 2010

У меня есть этот код:

if (something.equals(something1)) {
   myObj.setBoolean(true);
} else {
   myObj.setBoolean(false); 
}

Есть ли причина писать код выше, а не просто:

myObj.setBoolean(something.equals(something1));

Ответы [ 2 ]

3 голосов
/ 10 декабря 2010

С технической точки зрения: нет.С человеческой точки зрения: возможно;это может сделать код более читабельным и простым для понимания.

Я не очень хорошо осведомлен, когда речь идет о том, какие виды оптимизации выполняются различными компиляторами, но теоретически это может быть блок if-elseэффективно переводится в более короткую версию, поскольку они логически одинаковы.

2 голосов
/ 10 декабря 2010

Одно отличие состоит в том, что на первом легко установить точки останова.

Тем не менее, первая содержит избыточность, которая вызывает недовольство и несет незначительный риск расхождения.

Большинство отладчиков поддерживают точки останова, зависящие от значения. Эта альтернатива поддерживает разбиение на true или false без избыточности.

boolean isEqual = something.equals( something1);
myObj.setBoolean( isEqual );
...