actionPerformed中的Java无法添加到arrayList,结果为;AWT-EventQueue-0“;java.lang.UnsupportedOperationException

actionPerformed中的Java无法添加到arrayList,结果为;AWT-EventQueue-0“;java.lang.UnsupportedOperationException,java,Java,谢谢!这个问题由新的ArrayList解决。 短语=新的ArrayList(Arrays.asList) 首先,感谢stackoverflow.com提供如此好的信息和帮助! 下面是我的最低失败案例。我正在cygwin窗口中运行JavaJDK1.7.060 在Windows7上。问题是actionPerformed中的第60行,我尝试执行以下操作: 短语。添加(“退出;”其中短语是数组列表。虽然工作是为了 将QUIT附加到JTextArea,我想了解为什么短语.add()没有 工作 您已经为列表

谢谢!这个问题由新的ArrayList解决。 短语=新的ArrayList(Arrays.asList)

首先,感谢stackoverflow.com提供如此好的信息和帮助! 下面是我的最低失败案例。我正在cygwin窗口中运行JavaJDK1.7.060 在Windows7上。问题是
actionPerformed
中的第60行,我尝试执行以下操作:
短语。添加(“退出;”其中短语是数组列表。虽然工作是为了
将
QUIT
附加到
JTextArea
,我想了解为什么
短语.add()
没有 工作


您已经为
列表
变量
短语
分配了返回固定大小的
列表

phrases = Arrays.asList(s);
由于可以将元素添加到
ArrayList
中,因此您可以使用

phrases = new ArrayList<>(Arrays.asList(s));
phrases=newarraylist(Arrays.asList));
正如您最初所做的。

数组。asList()
实际上不会创建新列表。它为您提供了一个类似于
列表
,但实际上只是访问数组的对象。由于不能通过向数组中添加元素来扩大数组,因此也不能附加到此类列表中

而不是

phrases = Arrays.asList(s); 
试一试

phrases=newarraylist(Arrays.asList));
它会创建一个新列表,并通过复制数组的元素对其进行初始化。

读取:

公共静态列表asList(T…a)

返回指定数组支持的固定大小的列表

(强调矿山)

phrases = new ArrayList<>(Arrays.asList(s));
phrases = Arrays.asList(s); 
phrases = new ArrayList<String>(Arrays.asList(s));