public abstract class Enum<E extends Enum<E>>
implements Comparable<E>, Serializable
class StatusCode extends Enum<StatusCode>
在java中,每个枚举都是Enum
类的子类。我想将 Enum
类继承到我的自定义类“StatusCode”中。我尝试做同样的事情,但编译器抛出错误。详情如下
The type StatusCode may not subclass Enum<StatusCode> explicitly
- Bound mismatch: The type StatusCode is not a valid substitute for the bounded parameter <E extends
Enum<E>> of the type Enum<E>
如果我无法显式扩展 Enum 类,为什么不呢?这不是最终类,什么确保枚举类无法扩展?
最佳答案
错误消息说得很清楚:
The type
StatusCode
may not subclassEnum<StatusCode>
explicitly.
您需要做的只是创建一个 enum
类型:
enum StatusCode { ONE, TWO; }
有了这个enum
,编译器确保它扩展 Enum<StatusCode>
你不必担心它。
您可以通过运行此测试片段来验证这是真的:
StatusCode statusCode = StatusCode.ONE;
System.out.println(statusCode instanceof Enum);
请注意 instanceof
运算符不需要 Enum
的类型参数,您可以通过查看 this thread 了解更多信息。 .
关于java - 类 StatusCode 扩展 Enum<StatusCode>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32985068/