最MC论坛

标题: [教程]在Java中通过反射实例化枚举 [打印本页]

作者: lss233    时间: 2017-8-29 15:04
标题: [教程]在Java中通过反射实例化枚举
假假设我们有一个像这样的枚举:
  1. public enum Status{  
  2.   ON,
  3.   OFF
  4. }
复制代码


在某些情况下,我们需要通过反射的方式获得其中的某一个实例。

我们可以通过调用Enum中的valueOf方法,通过String获得枚举实例。

  1. Class<?> statusClass = Class.forName("Status");  
  2. Method valueOfMethod = statusClass.getMethod("valueOf",String.class);  
  3. Object onStatus = valueOfMethod.invoke(null,"ON");  
复制代码


或者这么写:

  1. Class<Enum> statusClass = (Class<Enum>) Class.forName("Status");  
  2. Object onStatus = Enum.valueOf(statusClass, "ON");  
复制代码








欢迎光临 最MC论坛 (http://www.zuimc.com/) Powered by Discuz! X3.2