java - 从包含它的类中获取 enum.values()

标签 java reflection enums

class Clazz{
    public enum MyEnum{
        Hello, World
    }
}

使用 Clazz 类,我如何获得 MyEnum.values()

用法示例是:

Class unknownClass = getSomeClass();

如何从unknownClass获取MyEnum.values()

最佳答案

您可以执行 Clazz.MyEnum.values() 来访问 Enum 或者您可以直接在其他类中导入 MyEnum 导入 com.in.Clazz.MyEnum 因为 MyEnumpublic

要通过反射获取MyEnum 常量,但如果MyEnum 可访问则无需使用反射。您可以通过以下方式进行,

Class<?> clazz = Clazz.class;//You are getting dynamically
Class<?> enumClass = clazz.getDeclaredClasses()[0];//assuming at index 0
Enum<?>[] enumConstants = (Enum<?>[]) enumClass.getEnumConstants();
System.out.println(enumConstants[0]);

输出

Hello

关于java - 从包含它的类中获取 enum.values(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34477406/

相关文章:

c# - 如何为特定值设置内部枚举?

c# - 在 LINQ 查询期间读取文件

java - 从 apk 文件中读取 Strings.xml 文件

Java Jackson - XML 到 POJO

java - 如何使用 JMockit 模拟实例化具有任何非空参数的新对象

c# - 在自定义 AppDomain 中附加内存程序集

java - 在界面上查找注释

java - Tomcat 9 上的 SSL Windows 认证错误

java - 对对象列表进行排序

java - Java 中的枚举和泛型