我试图通过反射将枚举常量作为参数传递给方法.这是一个简单的例子,演示了我的问题的一个非常简化的版本.(假设我必须使用反射)
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?)
}
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
谢谢,
您无需直接访问该字段.用途Enum.valueOf():
Enum.valueOf(cl.asSubclass(Day.class), "MONDAY")
Run Code Online (Sandbox Code Playgroud)
但很难理解为什么你不能Day.class直接使用.它可能有助于详细说明您的用例.