我在多个地方使用EnumSet<Foo>
。我想创建一个EnumSetFoo
类,所以我可以EnumSetFoo xyz = EnumSet.of(Foo.BAR)
,但是继承EnumSet
似乎不是可行的方法。有没有办法在Java中实现这种效果?
答案 0 :(得分:0)
Java没有typedef,但EnumSet.of()
会返回键入的EnumSet
,您不需要任何其他内容。
您不需要将其强制转换为使用返回内容的内容:
EnumSst<Foo> e = EnumSet.of(Foo.BAR);
如果你真的想使用你自己的类,提供一个合适的构造函数并将上面的内容传递给它或将枚举的实例传递给一个类型化的varargs构造函数:
public class EnumSetFoo extends EnumSet<Foo> {
public EnumSetFoo(Foo... foos) {
addAll(Arrays.asList(foos));
}
}
或其他什么。