У меня есть метод, который должен принять класс Enum. Эти перечисления реализуют интерфейс. Теперь мне нужен доступ к методам Enum, таким как ordinal(), name() и т.д. И мои методы интерфейса. Что я пробовал:
public <T extends ConfigFeature, Enum> void showEnabledFeatures(Class<T> enumType, long mask) {
List<T> list = Arrays.asList(enumType.getEnumConstants());
list.forEach(item -> {
// My interface method, works fine
item.getMask();
// Enum method doesn't work:
// item.ordinal();
});
}
Обратный порядок отменяет работу:
public <T extends Enum, ConfigFeature> void showEnabledFeatures(Class<T> enumType, long mask) {
List<T> list = Arrays.asList(enumType.getEnumConstants());
list.forEach(item -> {
// My interface method, doesn't work now
// item.getMask();
// Enum method now works:
item.ordinal();
});
}
Есть ли способ получить доступ к обоим методам из интерфейса и Enum?