使用 Arrays.asList() 后 Java List<string> 未添加到列表

Ger*_*Wyk 4 java arrays string list

我正在尝试在 Java 中执行以下操作:

String pageName = "MyPage";
String pageSpace= "SpaceA.SpaceB";
List<String> spaceList = new ArrayList<String>();
String[] spaceArr = pageSpace.split("\\.");
spaceList = Arrays.asList(spaceArr);
spaceList.add(pageName);
Run Code Online (Sandbox Code Playgroud)

为什么我无法将字符串添加到列表中?我可以做 spaceList.get(0) 和 spaceList.get(1) ,它们返回“SpaceA”和“SpaceB”,但 spaceList.get(2) 失败应该返回“MyPage”。

Era*_*ran 6

Arrays.asList返回一个由传递给它的数组支持的固定大小的 List。您不能向/从该列表添加/删除元素。

您甚至不应该能够访问该spaceList.get(2)语句,因为spaceList.add(pageName)应该UnsupportedOperationException首先抛出(也许您捕获了该异常)。

为了克服这个问题,创建一个新的ArrayList:

spaceList = new ArrayList<String>(Arrays.asList(spaceArr));
Run Code Online (Sandbox Code Playgroud)