java - 为什么要以静态方式访问静态字段?

标签 java static

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时,你说它是一个成员类,而不是对象(因此为什么只有一个)。因此,在对象上访问它是没有意义的,因为该特定数据成员与类相关联。

关于java - 为什么要以静态方式访问静态字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5642834/

相关文章:

java - Commons配置库添加元素

java - componentListener 被禁用

android - 从 Alertdialog 启动另一个 Activity

java - 从静态 block 调用静态方法

java - 在 hibernate 中删除用户实体时,角色也会被删除

java - 为什么 setPreferredSize 不改变按钮的大小?

java - 为什么 java 中的 main 方法是静态的

c# - C#中的静态成员继承

data-structures - Haskell 中的嵌入图像

java:在 Mac OsX 上禁用 TrayIcon 右键单击