java - 表示 API 返回不可修改/不可变集合的方法

标签 java immutability

除了记录它(显然它也应该被记录)、使用特殊的返回类型(我对将自己限制为 ImmutableX 持谨慎态度)或让用户在运行时发现之外,还有其他方法可以告诉API 的用户是否知道他们从所述 API 收到的集合是不可修改/不可变的?

是否有任何命名约定或标记注释普遍表示同一事物?

编辑:不可修改和不可变并不意味着同一件事,但就这个问题而言,它们足够相似。这个问题基本上归结为让用户知道返回的对象没有完全遵守其契约(Contract)(即一些常见操作会抛出运行时异常)。

最佳答案

不是一般的命名约定,但您可能对使用此 @Immutable 注释感兴趣:http://aspects.jcabi.com/annotation-immutable.html 除了文档目的之外,该机制还将验证您的对象是否真的不可变(在实例化期间),如果不是则抛出运行时异常。

关于java - 表示 API 返回不可修改/不可变集合的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30613323/

相关文章:

java - 使用 base64 对字符串值进行编码

java - org.graphstream.algorithm.APSP$APSPInfo.getShortestPathTo 处的 NullPointerException - 图形问题

java - 同时调试python和Java

java - 最终引用列表的 akka 不可变消息

java - 是否需要 Java 枚举类型的防御副本?

java - Selenium-Java-Actions 类型错误 : rect is undefined

java - 以编程方式在 JSP 中获取 Tomcat HTTP 连接器的 maxPostSize

java - 当前两个类已经处于基子类关系时,如何在第三个类中继承两个类?

java - 为什么不可变类提供修改器?

c# - ImmutableList 和 List 之间的一般性能比较?