我无意中发现以下内容无法在 Eclipse 中编译:
enum Empty {
;
abstract void foo();
}
JLS似乎验证了这种行为:
如果枚举声明 E 有一个
abstract
方法m
作为成员,这是一个编译时错误,除非 E 至少有一个枚举常量,并且 E 的所有枚举常量都有提供具体实现的类体m
。
我想知道这背后的原因是什么。为什么不将空枚举视为没有现有实现的抽象类?
我无意中发现以下内容无法在 Eclipse 中编译:
enum Empty {
;
abstract void foo();
}
JLS似乎验证了这种行为:
如果枚举声明 E 有一个
abstract
方法m
作为成员,这是一个编译时错误,除非 E 至少有一个枚举常量,并且 E 的所有枚举常量都有提供具体实现的类体m
。
我想知道这背后的原因是什么。为什么不将空枚举视为没有现有实现的抽象类?