
java 如何反射枚举
用户关注问题
如何通过反射获取枚举类的所有枚举值?
在Java中,怎样利用反射机制获得枚举类型定义的所有枚举实例?
使用Class的getEnumConstants方法获取枚举值
可以通过枚举类的Class对象调用getEnumConstants()方法来获取该枚举的所有枚举实例,这会返回一个包含所有枚举对象的数组。
如何使用反射调用枚举的特定方法?
假如枚举中有自定义的方法,怎么用反射调用它?
通过Class的getMethod方法获取方法并调用
首先通过Class对象使用getMethod(String name, Class<?>... parameterTypes)方法获取对应的方法对象;之后用Method的invoke(Object obj, Object... args)方法在具体的枚举实例上调用该方法。
反射中如何实例化枚举类型?
是否可以使用反射创建枚举的新实例?
Java不支持通过反射创建新的枚举实例
Java枚举的构造函数是私有的,而且虚拟机限制不允许通过反射机制创建新的枚举实例,所以只能使用现有的枚举值。