【坑】不要使用各种框架提供的内部List
为了代码简洁有时我们会使用一些框架提供的工具类。如
import org.apache.commons.collections.ListUtils;
package java.util.Collections;
List<String> strList = ListUtils.EMPTY_LIST;
List<String> strList1 = Collections.emptyList();
实际该空List是个内部类,没有实现add等方法,使用时会报错。
/**
* {@inheritDoc}
*
* <p>This implementation always throws an
* {@code UnsupportedOperationException}.
*
* @throws UnsupportedOperationException {@inheritDoc}
* @throws ClassCastException {@inheritDoc}
* @throws NullPointerException {@inheritDoc}
* @throws IllegalArgumentException {@inheritDoc}
* @throws IndexOutOfBoundsException {@inheritDoc}
*/
public void add(int index, E element) {
throw new UnsupportedOperationException();
}
又如,使用
arrays.aslist(T...a)
再进行add操作,同样会报该错。
https://www.2cto.com/kf/201806/751606.html
因此,还是老老实实使用下面方式初始化List
List<String> strList=new ArrayList<>();
或者确认工具类提供的是java的ArrayList再使用。
本博客用于技术学习,所有资源都来源于网络,部分是转发,部分是个人总结。欢迎共同学习和转载,转载请在醒目位置标明原文。如有侵权,请留言告知,及时撤除。