6
这段代码怎么没有编译?Java:这怎么不编译?
class A
{
class B
{
public enum Enum <-- this line
{
AD,
BC
}
}
}
编译报道:
enum declarations allowed only in static contexts.
但后来当我把里面的枚举类A,一切都还好。
这很令人惊讶。我不认为我在C++中遇到了这个问题。
枚举是一种内在静态的野兽。在上面的例子中,你只希望有一个Enum.AD对象。但是如果你在一个非静态类中声明一个枚举,你会(理论上)需要一个不同的Enum.AD实例用于每个合并范围。这没有道理......因此它是被禁止的。 – 2009-11-04 06:59:32