0

EnumSet<Foo>複数の場所で使用しています。EnumSetFooできるようにクラスを作成したいのですEnumSetFoo xyz = EnumSet.of(Foo.BAR)が、サブクラス化は適しEnumSetていないようです。Javaでこの効果を達成する方法はありますか?

4

1 に答える 1

0

Java には typedef はありませんがEnumSet.of()、typedEnumSetを返します。それ以上は必要ありません。

返されたものを使用するために何かにキャストする必要はありません。

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

本当に独自のクラスを使用したい場合は、適切なコンストラクターを提供して上記をそれに渡すか、列挙型のインスタンスを型指定された varargs コンストラクターに渡します。

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

または何でも。

于 2013-07-20T07:10:51.517 に答える