EnumSet<E>
类定义为:
public abstract class EnumSet<E extends Enum<E>>
extends AbstractSet<E>
implements Cloneable, Serializable
在 JCF 中。
此外,类本身实现的大多数方法都是静态的。最后,该类似乎没有实现 add()
, iterator()
, remove()
, size()
, contains()
或 isEmpty()
方法,只是从不实现它们的 AbstractSet 继承它们。
我有两个问题:
- 究竟如何
EnumSet
对象被实例化和使用? - 为什么我可以使用
add()
EnumSet
的方法对象?
最佳答案
你看到的大多数静态方法都是工厂方法(of()
、complementOf()
、allOf()
等)。
这些方法返回一个 EnumSet 的实例。这些方法创建和返回的 EnumSet 的实际类型是 EnumSet 的子类(RegularEnumSet
、JumboEnumSet
),它们不是公共(public) API 的一部分,但实现了所有所需的方法。您只需要知道它们实现了 EnumSet。
关于java - java.util.EnumSet<E> 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32113173/