无法通过 java 中的引用变量访问静态方法

Static method is not accessible through a reference variable in java

我只是想看看我是否可以使用初始化为“空”的“引用变量”通过“静态”方法访问静态变量(我知道不推荐这样做)。但我似乎根本无法访问该方法。似乎无法发现问题所在。

class Emp {

 static int bank_vault;

 static int getBankVaultValue(){
    return bank_vault;
 }
}

public class Office {

public static void main(String[] args)
{
    Emp emp = null;

    System.out.println(emp.); // Here I don't get getBankVaultValue method option
}
}

这只是你的IDE。您可以在那里使用 emp.getBankVaultValue(),它会起作用。您可以通过该实例引用访问静态方法(即使它是 null;它永远不会取消引用,因为 getBankVaultValue 是静态的)并且静态方法当然可以访问静态变量。但是您的 IDE 没有向您提供该建议,因为正如您所说,通过实例引用访问静态成员是个坏主意;对于查看代码的任何人来说,看起来您正在访问一个实例成员。 (至少,我认为这就是 IDE 没有这样做的原因。)

您清楚地意识到这是一个坏主意并且您知道如何正确地做到这一点,但是对于任何其他来到 question/answers 的人来说,正确的访问方式是通过 class 姓名,例如:

System.out.println(Emp.getBankVaultValue());

另一个 (emp.getBankVaultValue()) 有效,但这是一个语法怪癖。