Один шаг проверки на нулевое значение и пустоту строки - PullRequest
9 голосов
/ 16 декабря 2009

У меня есть метод установки.

Затем, когда запускается другой (скажем, генерирующий) метод, мне нужно проверить значение моих полей. Поэтому в случае свойства String мне нужно знать, содержит ли оно значение или оно не было установлено. Так что это может быть ноль, "" или что-то значимое, есть 3 варианта. И сначала довольно скучно проверять нулевое значение:

if (s != null)

тогда для пустой строки

if (!s.isEmpty())

здесь есть одношаговая проверка? Вы можете сказать мне, что я могу инициализировать свое поле String пустой строкой. [ЭТО ОБЩАЯ? ] Но что, если кто-то передает нулевое значение методу setS? поэтому мы всегда должны проверять, является ли значение Object нулевым или нет, прежде чем делать что-то с этим объектом?

Да, метод установки может проверять свои значения, а также метод получения может возвращать ненулевое значение, если поле пустое. Но единственное ли это решение? Для программиста слишком много работы с геттерами и сеттерами!

Ответы [ 6 ]

14 голосов
/ 16 декабря 2009

Библиотека Commons, StringUtils.isBlank () или StringUtils.isEmtpy () .

isEmpty эквивалентно

s == null || s.length() == 0

isBlank эквивалентно

s == null || s.trim().length() == 0
4 голосов
/ 12 сентября 2012
if(s != null && !s.isEmpty()){
// this will work even if 's' is NULL
}
3 голосов
/ 16 декабря 2009

В общежитии Джакарты есть StringUtils.isEmpty (String).

1 голос
/ 10 января 2016

использовать org.apache.commons.lang.StringUtils , метод StringUtils.isNotBlank проверять как пустоту, так и пустоту.

0 голосов
/ 06 марта 2019

Добавить зависимость maven для com.google.guava

Тогда в вашем коде:

import com.google.common.base.Strings;

if(!Strings.isNullOrEmpty(s)) {
  // Do stuff here
}
0 голосов
/ 16 декабря 2009

попробуйте

if (s) {

}

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