values() 方法是编译器插入到enum 定义中的static 方法,所以,当你将enum 实例向上转型为父类Enum是,values() 就不可访问了。解决办法:在Class 中有一个getEnumConstants() 方法,所以即便Enum 接口中没有values() 方法,我们仍然可以通过Class 对象取得所有的enum 实例。请问这个Class指的是什么啊?
这个枚举对象的class啊。
enum YourEnum{
One,Two,Three
}
for(YourEnum e:YourEnum.class.getEnumConstants()){
...
}