假设我们有一个像这样的枚举:
public enum Status{
ON,
OFF
}
在某些情况下,我们需要通过反射的方式获得其中的某一个实例。
我们可以通过调用Enum中的valueOf
方法,通过String获得枚举实例。
Class<?> statusClass = Class.forName("Status");
Method valueOfMethod = statusClass.getMethod("valueOf",String.class);
Object onStatus = valueOfMethod.invoke(null,"ON");
或者这么写:
Class<Enum> statusClass = (Class<Enum>) Class.forName("Status");
Object onStatus = Enum.valueOf(statusClass, "ON");