我正在尝试通过反射将枚举常量作为参数传递给方法。这是一个简单的示例,展示了我的问题的非常简化的版本。(假设我必须使用反射)
enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
public class Main {
public void print(Day d) {
System.out.println(d);
}
public static void main(String[] args) throws Exception
{
Class<?> cl = Class.forName("Day");
Field field = cl2.getDeclaredField("MONDAY");
print(_what_to_pass_here?)
}
}
我该怎么做?
谢谢,
您不需要直接访问该字段。用途Enum.valueOf()
:
Enum.valueOf(cl.asSubclass(Day.class), "MONDAY")
但是很难看出为什么不能Day.class
直接使用。详细说明您的用例可能会有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句