Есть ли чистый способ передачи перечисления CLASS функции?
Рассмотрим что-то вроде этого:
public enum MyEnum implements XYZ {
//enum values
A,
B,
C;
}
public void getEnumeration(final Class<? extends XYZ> myEnum) {
//go through enumeration
for (XYZ xyz : myEnum.getEnumConstants()
System.out.println(xyz.toString());
}
перечисление передается следующим образом:
getFunction(MyEnum.class);
сейчас ... вышеприведенное работает, и я могу передать свое перечисление в функцию getEnumeration()
очень хорошо.ОДНАКО, я хотел бы убедиться, что то, что я передаю, действительно является перечислением, а не любым классом, который реализует XYZ
. Я понимаю, что перечисление является типом класса , но есть ли способ строгого типа этого так, чтобы компилятор поднял его, если я передам класс, который реализует XYZ
вместо перечисления, которое реализует XYZ
* * 1015