如果这是我的枚举:

public enum Planet {
    MERCURY (3.303e+23),
    NEPTUNE (1.024e+26);

    private final double mass;   // in kilograms

    Planet(double mass) {
        this.mass = mass;
    }
    private double mass() {
        return mass;
    }
}


我可以访问类似的值

Planet.MERCURY.mass();


是否有机会将枚举定义为“双精度”并让

Planet.MERCURY;


返回双倍?

无论如何,我主要对调用的外观感兴趣,以确保代码可读性。

最佳答案

不能。用Java枚举表示是不可能的。我个人认为Planet.MERCURY.mass()更具可读性。

我唯一想到的是,稍微提高可读性的是使质量public final代替private final并引用Planet.MERCURY.mass,但是我会再三考虑。

10-07 17:10