【发布时间】:2013-07-19 12:35:02
【问题描述】:
我在多个地方使用EnumSet<Foo>。我想创建一个EnumSetFoo 类,这样我就可以做EnumSetFoo xyz = EnumSet.of(Foo.BAR),但是子类化EnumSet 似乎不是要走的路。有没有办法在Java中实现这种效果?
【问题讨论】:
我在多个地方使用EnumSet<Foo>。我想创建一个EnumSetFoo 类,这样我就可以做EnumSetFoo xyz = EnumSet.of(Foo.BAR),但是子类化EnumSet 似乎不是要走的路。有没有办法在Java中实现这种效果?
【问题讨论】:
Java 没有 typedef,但 EnumSet.of() 返回一个类型化的 EnumSet,您应该不需要更多。
您不需要 将其转换为任何东西以使用返回的内容:
EnumSst<Foo> e = EnumSet.of(Foo.BAR);
如果您真的想使用自己的类,请提供适当的构造函数并将上述内容传递给它,或者将枚举的实例传递给类型化的可变参数构造函数:
public class EnumSetFoo extends EnumSet<Foo> {
public EnumSetFoo(Foo... foos) {
addAll(Arrays.asList(foos));
}
}
或其他。
【讨论】: