Typesafe 有效只读 java 集合?
Typesafe effectively read only java collections?
我正在搜索一个 java 库,用于没有允许突变的方法的集合。有效的不可变只读集合。
我的意思是,没有方法。不像通常的 Java 不可变集合,它们具有 add
或 remove
等方法,在调用时会抛出异常。不...我希望编译器让我知道我正在尝试做一些不允许的事情,而不是在运行时出现一些错误。
我知道它存在,因为我用过它,但我记不起这样的库的名字了。
日食 Collections:https://www.eclipse.org/collections/
他们自己的 guide on immutable collections 说:
All of the basic containers in Eclipse Collections have interfaces for both mutable and immutable (unchangeable) forms. This departs somewhat from the JCF model, in which most containers are mutable.
An immutable collection is just that - once created, it can never be modified, retaining the same internal references and data throughout its lifespan. An immutable collection is equal to a corresponding mutable collection with the same contents; a MutableList
and an ImmutableList
can be equal.
Guava's immutable collections 使用 @Deprecated
声明可变方法,因此使用它们会发出编译器警告。
这可能是两全其美的方法,因为它允许在需要 Collection
的地方传递 ImmutableCollection
。
我正在搜索一个 java 库,用于没有允许突变的方法的集合。有效的不可变只读集合。
我的意思是,没有方法。不像通常的 Java 不可变集合,它们具有 add
或 remove
等方法,在调用时会抛出异常。不...我希望编译器让我知道我正在尝试做一些不允许的事情,而不是在运行时出现一些错误。
我知道它存在,因为我用过它,但我记不起这样的库的名字了。
日食 Collections:https://www.eclipse.org/collections/
他们自己的 guide on immutable collections 说:
All of the basic containers in Eclipse Collections have interfaces for both mutable and immutable (unchangeable) forms. This departs somewhat from the JCF model, in which most containers are mutable.
An immutable collection is just that - once created, it can never be modified, retaining the same internal references and data throughout its lifespan. An immutable collection is equal to a corresponding mutable collection with the same contents; a
MutableList
and anImmutableList
can be equal.
Guava's immutable collections 使用 @Deprecated
声明可变方法,因此使用它们会发出编译器警告。
这可能是两全其美的方法,因为它允许在需要 Collection
的地方传递 ImmutableCollection
。