【发布时间】:2015-12-18 13:58:32
【问题描述】:
我正在寻找 List 的 javadoc 以找到一种允许替换元素的方法 ( set(int, E) ),我看到该方法是“可选的”。我搜索了一段时间,发现了另一个 question,Laurence Gonsalves 给出了很好的回答。
但是我还有一个问题,直到现在每次我使用任何接口时,我都没有想到一个实现会抛出运行时异常(除非我使用错误或者它是实现代码中的错误),即使我意外尝试将元素添加到不可变列表时出现异常,我没有意识到发生了什么。
我的问题是:如果我有一个 API 方法有一个 List(或其他接口)参数,该参数必须对该对象调用“可选”操作,我应该如何进行?
- 我应该避免使用List,而是使用一些实现作为参数吗?
- 我是否应该制作一份列表的防御性副本,修改它并返回 列表? (这可能会改变 api 客户端使用的实现)
我知道需要更改作为方法中的参数接收的列表是有问题的,但可能有必要
【问题讨论】:
-
嗨贾罗德。我相信这不是一个重复的问题,我不是在问为什么操作是可选的,我是在问如何处理它。我在我自己的问题中链接了另一个问题,解释了为什么它是可选的,正如我在问题中所说,我阅读了它......
标签: java