我想拥有 EnumSet 的所有效率并传递它而不用担心有人会修改它。
问问题
5229 次
2 回答
29
您可以使用 Google 集合 (Guava) 获得不可变的 EnumSet。
资源 :
于 2010-08-30T20:05:16.933 回答
12
Collections.unmodifiableSet()
包装一个有什么问题EnumSet
?
诚然,EnumSet
原始引用仍然是可变的,但只要您丢弃原始引用,它在包装器内就与不可变一样好。
编辑:好的,因为EnumSet
在接口之上不提供任何实例方法Set
,所以不使用此解决方案的唯一原因是该EnumSet
类型对于文档目的很有用,并且在将其包装在Set
. 除此之外,EnumSet
行为将被保留。
于 2010-08-30T20:05:11.817 回答