【发布时间】:2016-02-13 10:09:22
【问题描述】:
我无意中发现以下内容在 Eclipse 中无法编译:
enum Empty {
;
abstract void foo();
}
JLS 似乎验证了这种行为:
如果枚举声明 E 有一个
abstract方法m作为成员,这是一个编译时错误,除非 E 至少有一个枚举常量并且所有 E 的枚举常量都有提供具体实现的类体m.
我想知道这背后的原因是什么。为什么不将空枚举视为没有现有实现的抽象类?
【问题讨论】:
标签: java enums abstract-class jls abstract-methods