You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中移除列表最后一个元素失败,请求技术帮助

问题解决:移除路径元素失败&正确获取程序目录的方法

你的代码里Arrays.asList()返回的是一个固定大小的列表,它不支持remove()这类修改操作,调用时会抛出UnsupportedOperationException,这就是操作失败的核心原因。

方案一:转成可修改的ArrayList

把创建列表的代码改成下面这样,将固定列表包装成可修改的ArrayList,就能正常执行remove()了:

List<String> path = new ArrayList<>(Arrays.asList(Paths.get("").toAbsolutePath().toString().split("\\\\")));
System.out.println(path);
int removeJavaFile = path.size() - 1;
path.remove(removeJavaFile);
String filePath = path.stream().map(n -> String.valueOf(n)).collect(Collectors.joining("\\"));
System.out.println(filePath);

方案二:用Java NIO API直接获取父目录(更推荐)

其实完全不用手动拆分、拼接路径,Java的Path类自带获取父目录的方法,代码更简洁,还能自动适配不同操作系统的路径分隔符:

Path currentAbsolutePath = Paths.get("").toAbsolutePath();
Path programDir = currentAbsolutePath.getParent();
System.out.println(programDir);

内容的提问来源于stack exchange,提问作者Harshini V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 23:44:52