gpt4 book ai didi

Java - 您可以从父类(super class)访问子类中声明的枚举吗?

转载 作者:行者123 更新时间:2023-12-01 19:24:31 25 4
gpt4 key购买 nike

我希望在子类中声明枚举类型,然后从父类(super class)访问它。这是我想出来的,但它不起作用:

class Subclass {
enum Pets {
CAT,
DOG;
}

Class<Pets> getEnumClass() {
return Pets.class;
}
}

class Superclass {
// This generates a warning:
abstract Class<? extends Enum> getEnumClass();
void PrintEnumNames() throws InstantiationException, IllegalAccessException {
Class<? extends Enum> enumClass = getEnumClass();

Enum newEnum = enumClass.newInstance();
for( Enum iEnum : newEnum.values()) { // newEnum.values() isn't available
System.out.printf("%s", iEnum.toString());
}
}
}

最佳答案

values()是静态方法,不能在实例上调用它。要从类中获取枚举值,请使用 Class.getEnumConstants() :

Class<? extends Enum> enumClass = getEnumClass(); 
for (Object o: enumClass.getEnumConstants())
System.out.println(o);

关于Java - 您可以从父类(super class)访问子类中声明的枚举吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2169482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com