除了记录它(显然它也应该被记录)、使用特殊的返回类型(我对将自己限制为 ImmutableX 持谨慎态度)或让用户在运行时发现之外,还有其他方法可以告诉API 的用户是否知道他们从所述 API 收到的集合是不可修改/不可变的?
是否有任何命名约定或标记注释普遍表示同一事物?
编辑:不可修改和不可变并不意味着同一件事,但就这个问题而言,它们足够相似。这个问题基本上归结为让用户知道返回的对象没有完全遵守其契约(Contract)(即一些常见操作会抛出运行时异常)。
最佳答案
不是一般的命名约定,但您可能对使用此 @Immutable
注释感兴趣:http://aspects.jcabi.com/annotation-immutable.html
除了文档目的之外,该机制还将验证您的对象是否真的不可变(在实例化期间),如果不是则抛出运行时异常。
关于java - 表示 API 返回不可修改/不可变集合的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30613323/