Есть ли недостатки в написании! String.isEmpty ()? - PullRequest
3 голосов
/ 28 августа 2011

В операторах if в коде Java я часто читаю что-то вроде if(string != null && string.isEmpty() == false). Я привык писать if(string != null && !string.isEmpty())

Есть ли недостатки использования !string.isEmpty()?

Ответы [ 4 ]

8 голосов
/ 28 августа 2011

С точки зрения поведения

if(string != null && string.isEmpty() == false)

и

if(string != null && !string.isEmpty())

явно идентичны.Я предпочитаю последнее, только потому, что оно немного более лаконично.Там, где это возможно, я предпочитаю выражать условия положительно, но, к сожалению, string.isNotEmpty() метод

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

StringUtils.isNotBlank(string)

Этот класс StringUtils из библиотеки Apache commons lang, но вы можете легко написать свой собственный, если у вас его еще нет в пути к классам и вы не хотите его добавлять.

3 голосов
/ 28 августа 2011

У меня нет недостатков.Это просто вопрос стиля и предпочтения личного кодирования.Лично я бы тоже предпочел if(!string.isEmpty()).

1 голос
/ 28 августа 2011

ИМХО нахожу!труднее читать.Вы должны помнить, что то, что должно произойти дальше, должно быть отрицано.If (string.isEmpty () == false), не требует никаких заметок.Таким образом, я думаю, что это менее вероятно, будет неправильно понято.

0 голосов
/ 28 августа 2011

Ниже приведен фрагмент из java.lang.String реализации

1286       public boolean isEmpty() {
1287           return 0 == count;
1288       }

isEmpty() проверить, равно ли число символов в строке, хранящихся в подсчете частного поля, 0. Это не должно иметь значения, если вы используете if(string.isEmpty() == false) или if(!string.isEmpty()), больше личного предпочтения кодирования.
Тем не менее, если вам нужно также выполнить проверку на пустую строку, вы можете проверить Apache Commons-Lang StringUtils.isEmpty(..)

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