2013-07-20 3 views
0

Я использую EnumSet<Foo> в нескольких местах. Я хотел бы создать класс EnumSetFoo, чтобы я мог делать EnumSetFoo xyz = EnumSet.of(Foo.BAR), но подкласс EnumSet, похоже, не подходит. Есть ли способ добиться этого эффекта на Java?Что-то вроде «typedef» для Java EnumSet

+0

Другое - http://stackoverflow.com/questions/9327281/implement-typedef-in-java – user93353

ответ

0

Java не имеет typedefs, но 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)); 
    } 
} 

или что-то еще.

Смежные вопросы