строка null проверить/ отделка


Второстепенный вопрос на строку нулевой чек и отделкой.

// given a function func() that might return either a string or null
String func() {
    return "  hello  ";
}

Какой из следующих лучше, т. е. более читабельным, предпочтительнее и т. д.?

List<String> list = new ArrayList<>();
String value = func(); // may return null
if (value != null && !value.trim().isEmpty()) {
    list.add(value.trim());
}

Или

List<String> list = new ArrayList<>();
String value = func(); // may return null
if (value != null) {
    value = value.trim();
    if(!value.isEmpty()) {
        list.add(value);
    }
}


2064
-1
задан 1 февраля 2018 в 08:02 Источник Поделиться
Комментарии
1 ответ

Когда я сталкиваюсь с подобными случаями, я использую библиотеку Апач Викискладе Ланг. Он имеет StringUtils класс с всякие полезные утилиты работы со строками. Для null-безопасный проверить, если строка не все пробелы, вы можете использовать следующее:

if (!StringUtils.isBlank(value))

Вот ссылка: StringUtils.епусто

Правка #1
просто понял, как использовать Optional чтобы устранить одну, если вопрос:

String value = Optional.ofNullable(func()).ifPresent(v -> v.trim()).orElse("");
if (!value.isEmpty()) {
list.add(value);
}

Правка #2
хороший указатель map функция. Мне удалось найти конечная последовательность функций, которая устраняет все ли условия!

    Optional.ofNullable(func())
.map(v -> v.trim())
.filter(v -> !v.isEmpty())
.ifPresent(v -> list.add(v));

2
ответ дан 1 февраля 2018 в 08:02 Источник Поделиться