the*_*ous 4 java reflection enums
class Clazz{
public enum MyEnum{
Hello, World
}
}
Run Code Online (Sandbox Code Playgroud)
上课时Clazz,我该怎么办MyEnum.values()?
用法的一个例子是:
Class unknownClass = getSomeClass();
Run Code Online (Sandbox Code Playgroud)
如何获得MyEnum.values()的unknownClass?
你可以做Clazz.MyEnum.values()访问Enum,或者你可以直接导入MyEnum你的其它类import com.in.Clazz.MyEnum监守MyEnum是public.
要MyEnum通过反射获得常量,但如果MyEnum可以访问则不需要使用反射.你可以通过以下方式完成,
Class<?> clazz = Clazz.class;//You are getting dynamically
Class<?> enumClass = clazz.getDeclaredClasses()[0];//assuming at index 0
Enum<?>[] enumConstants = (Enum<?>[]) enumClass.getEnumConstants();
System.out.println(enumConstants[0]);
Run Code Online (Sandbox Code Playgroud)
OUTPUT
Hello
Run Code Online (Sandbox Code Playgroud)