为什么枚举类型不能在方法中局部声明?

12 浏览
0 Comments

为什么枚举类型不能在方法中局部声明?

今天,我发现自己正在编写类似这样的代码...

public class LocalEnums {
    public LocalEnums() {
    }
    public void foo() {
        enum LocalEnum {
            A,B,C
        };
        // ....
        // class LocalClass { }
    }
}

当编译器在本地enum上报告错误时,我感到有些惊讶:

成员enum LocalEnum 不能是本地的

为什么枚举不能像一样声明为本地的?

我发现在某些情况下这非常有用。在我所处理的情况下,代码的其余部分不需要了解enum的任何信息。

是否存在任何结构/设计冲突可以解释为什么这是不可能的,或者这可能是Java的未来功能之一?

0