我有以下代码
import java.util.Arrays;
public class CustomEnum {
//?? varName;
public <E extends Enum<E>> CustomEnum(Class<E> enumClass) {
System.out.println(Arrays.toString(enumClass.getEnumConstants()));
//?? varName = enumClass;
}
}
public enum Mode {
SAMPLE_A,
SAMPLE_B,
SAMPLE_C,
SAMPLE_D
}
我可以这样称呼
public static void main(String[] args) {
CustomEnum customEnum = new CustomEnum(Mode.class);
}
代码输出
[SAMPLE_A, SAMPLE_B, SAMPLE_C, SAMPLE_D]
我想要做的是将enumClass
的值分配给一个变量,然后在构造函数中分配它,但是我不知道变量应该是哪种类型,我尝试了多种方法,但是遇到编译错误,这可能吗?
如果上述操作不可行,如何转换泛型类型
E[]
返回到getEnumConstants()
的{{1}}?
答案 0 :(得分:0)
使整个类通用,而不仅仅是构造函数。
public class CustomEnum<E extends Enum<E>> {
private E[] constants;
public CustomEnum(Class<E> enumClass) {
constants = enumClass.getEnumConstants();
}
}