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

时间:2017-07-11 10:12:41

标签: java static-methods static-variables

我只是想通过'静态'方法使用初始化为'null'的'参考变量'来访问静态变量(我知道这不推荐)。但我似乎无法访问该方法。似乎无法发现有什么问题。

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
}
}

1 个答案:

答案 0 :(得分:2)

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

你清楚地意识到这是一个糟糕的主意,而且你知道如何正确地做到这一点,但是对于其他任何人来问问题/答案,正确的方法是通过课程名称,例如:

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

另一个(emp.getBankVaultValue()正常工作,但它是一种语法怪癖。