Подтвердить что ты не робот

Существует ли метод JDK или guava для преобразования null в пустой список

Есть ли способ, подобный этому в JDK или Google guava

public static <T> Collection<T> safe(Collection<T> collection)
{
    if (collection == null)
    {
        return new ArrayList<>(0);
    } else
    {
        return collection;
    }
}

что упрощает не сбой в расширенном цикле, если что-то возвращает нулевой список, например

   for (String string : CollectionUtils.safe(foo.canReturnANullListOfStrings()))
   {
      // do something
   }

не будет сбой.

Я огляделся, но не смог найти такого метода, и мне интересно, пропустил ли я его или если есть причина, почему такой удобный метод не удобен и поэтому не включен?

4b9b3361

Ответ 1

Objects.firstNonNull(list, ImmutableList.<Foo>of());

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

Ответ 3

Таким образом, не существует функции для моих знаний такого рода. Однако писать одно тривиально, как вы показали выше. Причиной тому, почему он, возможно, не был включен, является то, что null имеет определенное значение, и, возможно, было бы нецелесообразно возвращать пустой Collection, когда он будет передан. Как правило (по моему опыту), когда нулевое значение входит в систему, что-то не удавалось выше, или цепочка была неверно деактивирована.

Ответ 4

В Java 8 можно использовать следующее:

Optional.ofNullable(foo.canReturnANullListOfStrings()).orElse(Collections.emptyList());