java - 获取声明枚举的类

标签 java enums

这是一个关于枚举的 Java 问题。

我有这些类(class):

class Test{
    public static enum TestEnum implements Variable{
        TEST_SOMETHING
        ;
    }
}

class Main{
    public static void main(String[] args){

        //how to get class Object Test from var?
        Variable var = TestEnum.TEST_SOMETHING;

    }
}

那么,如何从变量 Variable 中获取值为 Test.TestEnum.TEST_SOMETHING 的 Class 对象 Test

最佳答案

您可以像这样使用反射:

Class<?> testClass = TestEnum.TEST_SOMETHING.getClass().getDeclaringClass();

getClass() 的调用返回一个描述 TestEnum 枚举的类对象,因为这是 TEST_SOMETHING 的“类”。随后对 getDeclaringClass() 的调用返回 Test,因为 Test 是声明 TestEnum 的类(其 < em>声明类)。

Herejava.lang.Class的完整文档,它几乎是任何反射操作的起点。

关于java - 获取声明枚举的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26458766/

相关文章:

java - 使用 json 模板文件和 json 数据文件构建新的 json 字符串

java - 应用日志记录框架,对现有代码进行最少的更改

java - java中final字段初始化的问题: avoiding duplication of code using multiple constructors

java - Integer.decode(字符串s)

java - 为什么 Java 方法中不允许使用枚举?

java - 你把你的字典数据放在哪里?

Objective-C:我应该在哪里以及如何声明枚举?

python - 2.7 中与 future 兼容的枚举?

c# - 使用枚举实现层次结构的最佳 C# 模式是什么?

java - 使用 double in 循环。舍入可能出现问题