相关疑难解决方法(0)

在Java中,类静态中的枚举类型是什么?

我似乎无法从枚举中访问周围类的实例成员,因为我可以从内部类中访问.这是否意味着枚举是静态的?是否可以访问周围类的实例的范围,或者我是否必须将实例传递到我需要它的枚举方法中?

public class Universe {
    public final int theAnswer;

    public enum Planet {
        // ...
        EARTH(...);
        // ...

        // ... constructor etc.

        public int deepThought() {
            // -> "No enclosing instance of type 'Universe' is accessible in this scope"
            return Universe.this.theAnswer;
        }
    }

    public Universe(int locallyUniversalAnswer) {
        this.theAnswer = locallyUniversalAnswer;
    }
}
Run Code Online (Sandbox Code Playgroud)

java enums scope

118
推荐指数
2
解决办法
7万
查看次数

为什么不能在方法中本地声明枚举?

今天,我发现自己编写了这样的代码......

public class LocalEnums {

    public LocalEnums() {
    }

    public void foo() {
        enum LocalEnum {
            A,B,C
        };

        // ....
        // class LocalClass { }

    }
}
Run Code Online (Sandbox Code Playgroud)

当编译器报告本地错误时,我有点惊讶enum:

成员枚举LocalEnum不能是本地的

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

我发现这在某些情况下非常有用.在我工作的情况下,其余的代码不需要知道任何关于enum.

是否有任何结构/设计冲突可以解释为什么这是不可能的,或者这可能是Java 的未来特性?

java enums

55
推荐指数
4
解决办法
3万
查看次数

为什么Java不允许在方法中定义枚举?

可能重复:
Java:本地枚举

为什么我们不能在java中的特定方法中定义枚举?如果我有一个场景,我将在方法中使用这些枚举值,而不是在任何其他地方.在方法中声明而不是在全局定义它不是很好吗?我的意思是公开或默认.

java methods enums

8
推荐指数
1
解决办法
8533
查看次数

标签 统计

enums ×3

java ×3

methods ×1

scope ×1