public enum MyUnits
{
    MILLSECONDS(1, "milliseconds"), SECONDS(2, "seconds"),MINUTES(3,"minutes"), HOURS(4, "hours");

    private MyUnits(int quantity, String units)
    {
        this.quantity = quantity;
        this.units = units;
    }

    private int quantity;
    private  String units;

 public String toString()
 {
    return (quantity + " " + units);
 }

 public static void main(String[] args)
 {
    for (MyUnits m : MyUnits.values())
    {
        System.out.println(m.MILLSECONDS);
        System.out.println(m.SECONDS);
        System.out.println(m.MINUTES);
        System.out.println(m.HOURS);
    }
 }
}

这是指post ..无法回复或评论创建的任何新内容。为什么是我的
System.out.println(m.MILLSECONDS);

发出警告-应该以静态方式访问静态字段MyUnits.MILLSECONDS吗?
谢谢。

最佳答案

因为当您访问静态字段时,您应该在类(或本例中为枚举)上执行此操作。如

MyUnits.MILLISECONDS;

不在实例中
m.MILLISECONDS;

编辑要解决以下问题:在Java中,当您将某些内容声明为static时,您是说它是类的成员,而不是对象(因此,为什么只有一个)。因此,在对象上访问它没有意义,因为该特定数据成员与该类相关联。

10-07 12:25