Java 枚举类存储Class类型:两种方法详解

本文介绍两种在Java枚举类中存储class类型的方法,并附带代码示例和注意事项,帮助你轻松掌握如何在枚举中存储class信息。

  1. 使用静态常量存储class类型:
public enum MyClassEnum {
    CLASS1(MyClass1.class),
    CLASS2(MyClass2.class),
    CLASS3(MyClass3.class);

    private final Class<?> clazz;

    MyClassEnum(Class<?> clazz) {
        this.clazz = clazz;
    }

    public Class<?> getClazz() {
        return clazz;
    }
}
  1. 直接在枚举类中存储class类型:
public enum MyClassEnum {
    CLASS1 {
        @Override
        public Class<?> getType() {
            return MyClass1.class;
        }
    },
    CLASS2 {
        @Override
        public Class<?> getType() {
            return MyClass2.class;
        }
    },
    CLASS3 {
        @Override
        public Class<?> getType() {
            return MyClass3.class;
        }
    };

    public abstract Class<?> getType();
}

这样,通过枚举实例调用getType()方法就可以获取对应的class类型了。注意,在第二种方式中,每个枚举实例都需要实现getType()方法。

Java 枚举类存储Class类型:两种方法详解

原文地址: https://www.cveoy.top/t/topic/pxdG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录