0

EnumSet<Foo>在多个地方使用。我想创建一个EnumSetFoo类,所以我可以这样做EnumSetFoo xyz = EnumSet.of(Foo.BAR),但子类EnumSet化似乎不是要走的路。有没有办法在Java中实现这种效果?

4

1 回答 1

0

Java 没有 typedef,但EnumSet.of()返回一个 typed EnumSet,你不应该再需要任何东西了。

无需将其转换为任何内容即可使用返回的内容:

 EnumSst<Foo> e = EnumSet.of(Foo.BAR);

如果您真的想使用自己的类,请提供适当的构造函数并将上述内容传递给它,或者将枚举的实例传递给类型化的可变参数构造函数:

public class EnumSetFoo extends EnumSet<Foo> {
    public EnumSetFoo(Foo... foos) {
        addAll(Arrays.asList(foos));
    }
}

管他呢。

于 2013-07-20T07:10:51.517 回答