Дано: в метод передан EnumSet. Какой Enum используется - неизвестно.
public <E extends Enum<E>> void showEnumList(EnumSet<E> set) {
// .... ???
}
Надо: получить список всех полей исходного Enum'а и проставить флажки напротив тех элементов, которые есть в исходном EnumSet.
Решение:
Самое "сложное" - это получить все элементы Enum'а. Поэтому сделать вспомогательный метод никогда не помешает:
public class EnumSetUtils {
  public static <E extends Enum<E>> EnumSet<E> getAllValues(EnumSet<E> set) {
EnumSet<E> enumSet = EnumSet.complementOf(set);
enumSet.addAll(set);
return enumSet;
}
}
Ну а теперь можно приступать и выполнению задания:
public <E extends Enum<E>> void showEnumList(EnumSet<E> set) {
for (E e : EnumSetUtils.getAllValues(set)) {
System.out.println(e + " " + (set.contains(e) ? "+" : "-" ));
}
}
Задача решена. Всем спасибо.