StringUtils.defaultString эвфемизм для коллекций? - PullRequest
2 голосов
/ 17 ноября 2009

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

например. заменить

if (list != null) {
    for (String item: list) {
        // ...
    }
}

с чем-то вроде

for (String item: ListUtils.defaultList(list)) {
    // ...
}

Использование троичного оператора довольно уродливо и приводит к непроверенным ошибкам приведения:

List<String> safelista = (List<String>) (list != null ? list : Collections.emptyList());
List<String> safelistb = (list != null ? list : Collections.EMPTY_LIST);        

Поместить его в строку еще страшнее.

Ответы [ 2 ]

3 голосов
/ 17 ноября 2009

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

public static <T> List<T> nullToEmpty (List<T> list) {
    if (list == null)
       return Collections.emptyList(); // Can't use ?: here!
    return list;
}
3 голосов
/ 17 ноября 2009

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

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