如何在Java中通过反射传递枚举参数

萨米·海鲁

我正在尝试通过反射将枚举常量作为参数传递给方法。这是一个简单的示例,展示了我的问题的非常简化的版本。(假设我必须使用反射)

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?)
    }
}

我该怎么做?

谢谢,

mos

您不需要直接访问该字段。用途Enum.valueOf()

Enum.valueOf(cl.asSubclass(Day.class), "MONDAY")

但是很难看出为什么不能Day.class直接使用详细说明您的用例可能会有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章