空数组到空列表

2022-09-01 10:12:51

Arrays.asList(E[] e)将数组的视图返回为 ,但是当数组为 null 时,它将引发 一个 。ListNullPointerException

Arrays.asList(null); //NullPointerException.

其实我正在做

 List list = possibleNullArray != null ? Arrays.asList(possibleNullArray) : Collections.EMPTY_LIST;

但是,在我的项目中仅为此目的创建 Utility 类是我不想做的事情。是否有一些实用程序类或库(如Apache Commons或Guava)将空数组转换为空数组?(即数组和集合之间的空安全转换器)。List

您将如何解决这个问题?


答案 1

您可以使用Java 8:Optional

String[] arr = null;
List<String> list = Arrays.asList(Optional.ofNullable(arr).orElse(new String[0]));

答案 2

您可以使用 Java 8 和OptionalStream

Optional.ofNullable(possibleNullArray)
        .map(Arrays::stream)
        .orElseGet(Stream::empty)
        .collect(Collectors.toList())