当前位置: 首页 > 面试题库 >

调用list.remove(0)时出现奇怪的UnsupportedOperationException

公西宏峻
2023-03-14
问题内容

我有这种方法,它使用字符串的可变参数,从中创建一个列表,然后尝试删除列表的第一个元素。

public void importFrom(String... files) {
    List<String> fileList = Arrays.asList(files);

    String first = fileList.remove(0);
    // other stuff
}

但是,一旦remove被调用,UnsupportedOperationException就会抛出一个。我的猜测是返回的List-
Type不支持remove方法。我对么?我有什么选择?


问题答案:

Arrays.asList仅在数组周围提供薄包装。该包装器使您可以使用API 对阵列执行 大多数 操作List。JavaDoc的引文:

返回由指定数组支持的 固定大小的 列表。[…]此方法充当基于数组的API和基于集合的API之间的桥梁[…]

如果您确实要删除某些内容,则可以这样做:

List<String> realList = new ArrayList<String>(Arrays.asList(stringArray));

这个创建一个真实的ArrayList(支持remove)并用另一个列表的内容填充它,恰好是您的包装器String[]



 类似资料:
  • 问题内容: 我有这种方法,它使用字符串的可变参数,从中创建一个列表,然后尝试删除列表的第一个元素。 但是,一旦被调用,就会抛出一个。我的猜测是返回的List- Type不支持remove方法。我对么?我有什么选择? 问题答案: 仅在数组周围提供薄包装。该包装器使您可以使用API 对阵列执行 大多数 操作。JavaDoc的引文: 返回由指定数组支持的 固定大小的 列表。[…]此方法充当基于数组的AP

  • 问题内容: 我一直在使用PyCharm在PyQt中调试我的GUI。到目前为止,这确实非常成功,直到我在尝试调试gui时遇到一个奇怪的错误。我已经在脚本的开始以及各个点设置了一个断点,但是程序没有机会到达这一点。我也尝试删除所有断点并运行调试,但得到相同的结果。完整的回溯是: 有谁知道导致此错误的原因以及如何解决?当我正常运行代码(无需调试)时,不会遇到任何这些错误。 问题答案: 我遇到了同样的问题

  • 我在使用FPDF库生成pdf文件时得到了这个输出。 %PDF-1.3.0 obj 我的代码:

  • 我有一个XUIView课程,如下所示。运行动画时,对折叠没有效果。 谁能解释我? 源代码:http://www.mediafire.com/file/n6svp1mk44fc0uf/TestXUIView.zip/file

  • 问题内容: 我正在使用jmh 使用maven并按照http://openjdk.java.net/projects/code- tools中 建议的命令行方法对一个简单的应用程序进行基准测试。成功设置并建立基准后,我可以使用avgt模式获得以下基准结果: 我不确定如何解释此输出,但我确定某些地方出了错…?知道什么或如何调试吗? 问题答案: JMH输出使用扩展的Unicode字符。特别是, ?10