在枚举类中存储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()方法


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

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