Java清单java.lang.UnsupportedOperationException

一个简单的List.add()并命中以下java.lang.UnsupportedOperationException

ListExample.java ListExample.java
package com.mkyong;

import java.util.Arrays;
import java.util.List;

public class ListExample {

    public static void main(String[] args) {

        List<String> str = Arrays.asList("A", "B", "C");

        str.add("D");

        System.out.println(str);
    }

}

输出量

Exception in thread "main" java.lang.UnsupportedOperationException
	at java.base/java.util.AbstractList.add(AbstractList.java:153)
	at java.base/java.util.AbstractList.add(AbstractList.java:111)
	at com.mkyong.ListExample.main(ListExample.java:14)

解

Arrays.asList返回一个固定大小的列表,不允许修改。 要解决此问题,请尝试以下操作:

ListExample.java ListExample.java
package com.mkyong;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListExample {

    public static void main(String[] args) {

        List<String> str = new ArrayList<>(Arrays.asList("A", "B", "C"));
        //List<String> str = Arrays.asList("A", "B", "C");

        str.add("D");

        System.out.println(str);
    }

}

输出量

[A, B, C, D]

参考文献

翻译自:
经验分享 程序员 微信小程序 职场和发展