集合Java 7中有ImmutableEnumSet的计划吗? 1 年,2 月 Questions & Answers 5223 我希望拥有EnumSet的所有效率,并将其传递出去,而不必担心有人会修改它
# 1 楼答案 你可以用Google collections(番石榴)获得一个不可变的枚举集 资源: Guava home page Google-collections bug tracker - immutable enum set convenience constructor Google documentation - Sets.immutableEnumSet()
# 2 楼答案 用Collections.unmodifiableSet()包装EnumSet有什么问题 诚然,原始的EnumSet仍然是可变的,但只要放弃原始引用,它在包装器中就一样是不可变的 edit:好的,因为EnumSet在Set接口上不提供任何实例方法,所以不使用此解决方案的唯一原因是EnumSet类型对于文档来说很有用,而在Set中包装它时会丢失它。除此之外,EnumSet行为将被保留
# 1 楼答案
你可以用Google collections(番石榴)获得一个不可变的枚举集
资源:
# 2 楼答案
用
Collections.unmodifiableSet()
包装EnumSet
有什么问题诚然,原始的
EnumSet
仍然是可变的,但只要放弃原始引用,它在包装器中就一样是不可变的edit:好的,因为
EnumSet
在Set
接口上不提供任何实例方法,所以不使用此解决方案的唯一原因是EnumSet
类型对于文档来说很有用,而在Set
中包装它时会丢失它。除此之外,EnumSet
行为将被保留