我遇到了这个问题,我不知道enum我需要迭代其可能值的实际类型.
if (value instanceof Enum){
Enum enumValue = (Enum)value;
}
Run Code Online (Sandbox Code Playgroud)
任何想法如何从enumValue中提取其可能的值?
我有一个这样的枚举:
public enum Mode{
RUNNING("SytemRunning"),
STOPPED("SystemStopped"),
IDLE("tmpIdle");
public static String key;
private Mode(String key){
this.key = key;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想通过反射来获取此枚举的键(SystemRunning,SystemStopped,tmpIdle):
Class<?> c = Class.forName("Mode");
Object[] objects = c.getEnumConstants();
// now this is not what I want, but almost
for(Object obj : objects){
System.out.println("value : " + obj);
}
Run Code Online (Sandbox Code Playgroud)
输出是:RUNNING STOPPED IDLE
但是,我想要使用Strings SystemRunning,tmpIdle等.
非常感谢你提前.