Возврат из метода с помощью команды return - PullRequest
4 голосов
/ 23 февраля 2011

В каком-то классе есть метод

public void addAdditionalData(List<PairOfKeyString> data, List<Text> comments)

Для этого метода важна информация из списка данных - это означает, что если данные пусты или ноль, логика в этом методе не выполняется,У меня есть два варианта, как это сделать

Первый

if (data != null && !data.isEmpty()) { do somelogic here }

Второй

if(data == null || data.isEmpty()) {
   return;
}

Какой вариант вы бы предпочли и почему?Спасибо!

Ответы [ 4 ]

6 голосов
/ 23 февраля 2011

Второй вариант определенно лучше, потому что он не увеличивает вложенность кода, легче для чтения и понимания. Вы также можете добавить больше правил, когда не для выполнения операции, и это не влияет на важную часть реализации.

3 голосов
/ 23 февраля 2011

Я предпочитаю второй вариант:

if(data == null || data.isEmpty()) {
   return;
}

Поскольку после этого вы можете добавить свою логику без необходимости инкапсулировать весь код в операторе if, что делает ваш код менее читабельным, читатель увидит его как отдельный раздел кода.

И это позволит вам в будущем разделить и при необходимости расширить все условия, которые заставят вас отказаться от рутины, вместо того, чтобы иметь много вложенных if. Учтите, что написан код тарифа: прочитайте примерно 1: 10

1 голос
/ 23 февраля 2011

Еще один простой метод:

если ( Collections.emptyList (). Equals (data)) {}

1 голос
/ 23 февраля 2011

Я обычно предпочитаю операторы && для случаев, когда булева алгебра не становится слишком сложной по сравнению с || выражение.
Причина:

  1. есть только один случай (из четырех), который нужно проверить мысленно для ввода оператора if.
  2. Я стараюсь избегать выражений возврата / прерывания в методах, чтобы сделать поток кода более понятным.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...