gpt4 book ai didi

java - 处理列表 "Optional operation"

转载 作者:行者123 更新时间:2023-12-02 04:21:40 25 4
gpt4 key购买 nike

我正在寻找javadoc List 来查找允许替换元素的方法( set(int, E) ),我发现该方法是“可选的”。我搜索了一段时间,发现了另一个question劳伦斯·贡萨尔维斯给出了很好的回答。

但是我仍然有一个问题,直到现在每次我使用任何接口(interface)时,我从未预料到实现会抛出运行时异常(除非我使用错误或者它是实现代码中的错误),即使我当意外尝试将元素添加到不可变列表时出现异常,我没有意识到发生了什么。

我的问题是:如果我有一个 API 方法,该方法具有一个 List(或其他一些接口(interface))参数,并且该参数必须调用该对象上的“可选”操作,我应该如何继续?

  • 我应该避免使用 List 并使用某些实现作为参数吗?
  • 我是否应该制作列表的防御性副本,修改它并返回该副本列表? (这可能会改变 API 客户端使用的实现)

我知道需要更改作为方法中的参数接收的列表是有问题的,但这可能是必要的

最佳答案

Java 库本身始终对您的两个问题回答“否”。例如,实用程序方法 Collections.shuffle接受任何List,如果传递给它的List不支持必要的操作,则抛出异常。一般来说,坚持这种行为与 Java 库和主要开发实践是一致的:继续使用 List,就好像它是可变的一样,并且如果有人传入 List code> 不支持必要的操作,他们会得到他们应得的异常。

关于java - 处理列表 "Optional operation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32702491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com