java异常java.lang.UnsupportedOperationException解决方法

1.java异常报错如下

java.lang.UnsupportedOperationException
	at java.util.AbstractList.add(AbstractList.java:148)
	at java.util.AbstractList.add(AbstractList.java:108)
	at com.hiss.entity.binary.response.FreezeUserResponse.toDataModel(FreezeUserResponse.java:96)
	at com.hiss.service.impl.HissNewOsReceiveService.receiveService(ReceiveService.java:204)
	at com.hiss.service.impl.HissNewOsReceiveService$$FastClassBySpringCGLIB$$556c3f60.invoke()
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.aop.interceptor.AsyncExecutionInterceptor$1.call(AsyncExecutionInterceptor.java:115)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

2.异常解决方法如下
private List users = Collections.emptyList();
执行remove,add等method时,抛出此异常,本人将上述代码改为:
private List users = new ArrayList();

3.异常原因如下
Collections.emptyList()中的emptyList继承AbstractList,remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作

    @SuppressWarnings("unchecked")
    public static final  List emptyList() {
        return (List) EMPTY_LIST;
    }

emptyList继承AbstractList

 private static class EmptyList
        extends AbstractList
        implements RandomAccess, Serializable {
        .....
}

remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作

    /**
     * {@inheritDoc}
     *
     * 

This implementation always throws an * {@code UnsupportedOperationException}. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public E set(int index, E element) { throw new UnsupportedOperationException(); } /** * {@inheritDoc} * *

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(); } /** * {@inheritDoc} * *

This implementation always throws an * {@code UnsupportedOperationException}. * * @throws UnsupportedOperationException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public E remove(int index) { throw new UnsupportedOperationException(); }

你可能感兴趣的:(报错解决,java代码)