是否有Java 7中的ImmutableEnumSet计划?

时间:2010-08-30 20:01:35

标签: java collections enums java-7

我想拥有EnumSet的所有效率并传递它,而不必担心会有人修改它。

2 个答案:

答案 0 :(得分:29)

答案 1 :(得分:11)

Collections.unmodifiableSet()包裹EnumSet有什么问题?

是的,原始的EnumSet仍然是可变的,但只要您丢弃原始引用,它就像包装器中的不可变一样好。

编辑:好的,由于EnumSet不提供Set接口之外的任何实例方法,因此不使用此解决方案的唯一原因是{ {1}}类型对于文档目的很有用,并且在将其包装在EnumSet中时会丢失。除此之外,将保留Set行为。