相关疑难解决方法(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万
查看次数

静态枚举与非静态枚举

Java中的静态枚举和非静态枚举有什么区别?两种用法都是一样的.

这是正确的吗? 所有静态的都在启动时加载到内存中,非静态的是按需加载的 如果是,那么哪种方法更好?是否始终将一些数据保存在内存中或使用服务器资源加载它们?

public class Test {

    public enum Enum1 {
        A, B
    }

    public static enum Enum2 {
        C, D
    }

    public static void main(String[] args) {
        Enum1 a = Enum1.A;
        Enum1 b = Enum1.B;

        Enum2 c = Enum2.C;
        Enum2 d = Enum2.D;
    }
}
Run Code Online (Sandbox Code Playgroud)

java enums static-members

71
推荐指数
3
解决办法
7万
查看次数

标签 统计

enums ×2

java ×2

scope ×1

static-members ×1