java - 为什么我不能在 Java 的内部类中创建枚举?

标签 java enums nested inner-classes

我尝试做的是:

public class History {
    public class State {
        public enum StateType {

Eclipse 在 StateType 上给了我这个编译错误:成员枚举 StateType 必须在静态成员类型中定义

当我将 State 类设为静态时,错误消失了。我可以将 State 设为静态,但我不明白为什么我不能在内部类中声明 enum

最佳答案

enum 被定义为嵌套类型的类型总是隐含的static(见JLS §8.9. Enums)

您不能在非静态类型中包含静态嵌套类型(也称为“内部类”,请参阅 JLS §8.1.3. Inner Classes and Enclosing Instances)。

因此,在非静态嵌套类型中不能有 enum 内部类型。

关于java - 为什么我不能在 Java 的内部类中创建枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14858036/

相关文章:

java - 在 Java 中 : do expressions involving constants defined at instantiation get simplified during compile-time?

java - 如何将类型化查询转换为条件生成器对象?

java - 多幻灯片表示

java - 在 docker-compose 文件中指定 JVM 选项

c++ - 是否允许枚举具有未列出的值?

html - 在 div 中创建表单并尝试将内容保留在其中

C# 嵌套字典 - 字典中的字典返回错误(KeyNotFoundException)

enums - 如何在没有模式匹配的情况下比较枚举

.net - 如何将枚举参数从组合框传递到另一个类(winform)

python - 嵌套循环来创建模式