首页 > 解决方案 > 空列表上的 Java ArrayList 方法 addAll() 抛出 UnsupportedOperationException

问题描述

我有如下代码,我试图将 ArrayList(componentList) 添加到另一个 ArrayList(SpareParts)。只要备件列表不为空,它就可以正常工作。当备用零件列表为空时,它会抛出java.lang.UnsupportedOperationException: null

List<ProductReferenceData> spareParts = new ArrayList<ProductReferenceData>();
/**
 Method which fills spareParts List and does not return null. Checked in Debugger as well.
*/
if(componentLabels!=null && !CollectionUtils.isEmpty(componentLabels))
 {
    spareParts.addAll(componentLabels);
 }

我可以放一个 if else 循环来检查spareParts 列表是否为空来修补这个问题,但是有没有一个优雅的解决方案呢?也许在 Java 8 中

---编辑---添加堆栈跟踪

INFO   | jvm 1    | main    | 2020/08/07 20:10:39.309 | java.lang.UnsupportedOperationException: null
INFO   | jvm 1    | main    | 2020/08/07 20:10:39.316 |     at java.util.AbstractList.add(AbstractList.java:148) ~[?:1.8.0_172]
INFO   | jvm 1    | main    | 2020/08/07 20:10:39.316 |     at java.util.AbstractList.add(AbstractList.java:108) ~[?:1.8.0_172]
INFO   | jvm 1    | main    | 2020/08/07 20:10:39.316 |     at java.util.AbstractCollection.addAll(AbstractCollection.java:344) ~[?:1.8.0_172]
INFO   | jvm 1    | main    | 2020/08/07 20:10:39.316 |     at com.ge.hc.storefront.controllers.pages.ProductPageController.productDetail(ProductPageController.java:418) ~[classes/:?]

标签: javaexceptionarraylistcollections

解决方案


推荐阅读