Eze*_*iel 21 java arrays collections
Arrays.asList(E[] e)将数组视图作为a返回List,但是当数组为null时,它会抛出一个NullPointerException.
Arrays.asList(null); //NullPointerException.
Run Code Online (Sandbox Code Playgroud)
其实我在做
List list = possibleNullArray != null ? Arrays.asList(possibleNullArray) : Collections.EMPTY_LIST;
Run Code Online (Sandbox Code Playgroud)
但是,仅为此目的在我的项目中创建一个Utility类是我不想做的事情.是否有一些实用程序类或像Apache Commons或Guava这样的库将null数组转换为空List?(即数组和集合之间的零安全转换器).
你会如何解决这个问题?
Era*_*ran 37
您可以使用Java 8 Optional:
String[] arr = null;
List<String> list = Arrays.asList(Optional.ofNullable(arr).orElse(new String[0]));
Run Code Online (Sandbox Code Playgroud)
Pet*_*ček 16
我不知道Apache Commons/Guava中的任何util方法会List从null 创建一个空实例.
你可能做的最好的事情是事先初始化可能为null的数组,例如ArrayUtils.nullToEmpty().尽快摆脱空值.
SomeObject[] array = ArrayUtils.nullToEmpty(possiblyNullArray);
Run Code Online (Sandbox Code Playgroud)
Nic*_*aux 13
您可以使用Java 8 Optional和Stream
Optional.ofNullable(possibleNullArray)
.map(Arrays::stream)
.orElseGet(Stream::empty)
.collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29208 次 |
| 最近记录: |