Java通过反射创建枚举实例

标签 java reflection enums

我想获取一个枚举类型的实例,这样:

String enumString="abc";
MyClass.MyEnum enumType=Class.forName("com.MyClass.MyEnum."+enumString);

这给了我一个不可转换的类型。

最佳答案

Enum.valueOf会做的,但它对它的类型非常挑剔。确保转换 ClassClass<? extends Enum> .示例:

enum Foo {
    BLAT,
    BLARG
};

System.out.println(Enum.valueOf((Class<? extends Enum>)Class.forName("Foo"), "BLARG"));

关于Java通过反射创建枚举实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5108281/

相关文章:

java - java中如何在类的派生类中查找字段?

java - this.getClass().getFields().length;总是返回 0

laravel - 如何更改 Laravel 迁移中的枚举类型列?

java - 无法在maven中生成具有依赖项的单个jar文件

java - Rmi 客户端不使用代码库

java - 未使用自定义 DefaultTokenServices bean

java - 在 Linux 上调整 Java 中的上下文切换频率

c# - 在没有 for 或 foreach 的情况下使用 LINQ 进行反射

java - 在定义值之前无法在 Enum 中定义 int 变量

java - Hibernate从数据库获取已删除的java枚举类型