Компилятор Java понимает два возврата? - PullRequest
0 голосов
/ 05 декабря 2011

Безопасно ли писать что-то подобное в java?

if(var==2){
 return true;
}
return false;

Каким-то образом при отладке компилятор выполняет первое возвращение и переходит ко второму.Разве метод не должен быть прерван после первого возврата?

Ответы [ 5 ]

3 голосов
/ 05 декабря 2011

Да, это безопасно.

Но попробуйте написать это вместо:

return (var==2);
1 голос
/ 05 декабря 2011

Да, это безопасно!Вы можете получить столько возвратов, сколько захотите - метод будет прерван после первого

1 голос
/ 05 декабря 2011

Это совершенно безопасный и действительный код Java. И возвращение не может быть фактически не возвращено.

Если вы считаете, что это так, я предлагаю вам выполнить очистку, а затем перекомпилировать, возможно, существует несоответствие между скомпилированным классом и вашим исходным кодом.

1 голос
/ 05 декабря 2011

Это совершенно безопасно. Альтернативы return var == 2; или return var == 2 ? true : false;

1 голос
/ 05 декабря 2011

Да, это прекрасно, даже если вы можете написать его короче.Возможно, это просто выглядит так, как будто он достигает вашего второго возврата, когда вы визуально шагаете по коду, когда var == 2, но он подходит к концу функции.Вы должны иметь возможность проверить возвращаемое значение функции после ее завершения.

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

...