【发布时间】:2021-05-09 02:44:27
【问题描述】:
我正在为没有允许突变的方法的集合搜索 Java 库。有效的不可变只读集合。
我的意思是,没有方法。不像通常的 Java 不可变集合,它们具有像 add 或 remove 这样的方法,在调用时会抛出异常。不...我希望编译器让我知道我正在尝试做一些不允许的事情,而不是在运行时出现一些错误。
我知道它的存在是因为我用过它,但我不记得这个库的名字了。
【问题讨论】:
-
写一个包装类!但无论你使用什么都不是
Collection,因为allCollections 应该声明这些方法,因为它是Collection接口的一部分 -
@xtratic 我知道这样的库存在。另外,我的公司不允许我有空间来实施上述包装器。
-
包装器将无济于事,因为它不会给出编译时错误。
-
@Horse 如果您制作的包装器仅公开“读取”方法。那么当您尝试使用未公开/未定义的“写入”方法时,它肯定会出现编译错误。跨度>
-
@AlejandroNavas 请在选择集合框架时格外小心,因为如果您的接口/模块将被公司使用,它将产生非常大的影响。此外,多年来某些不兼容的库版本,有些项目已经诉诸于特定版本的阴影。同样不要气馁,但在选择短焦点的集合框架时请格外小心。
标签: java immutability readonly-collection