我只是想通过'静态'方法使用初始化为'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
}
}
答案 0 :(得分:2)
它只是你的IDE。你可以在那里使用emp.getBankVaultValue()
,它会起作用。您可以通过该实例引用访问静态方法(即使它null
;它永远不会被解除引用,因为getBankVaultValue
是静态的),静态方法当然可以访问静态变量。但是你的IDE并没有向你提供这个建议,因为正如你所说,通过实例引用访问静态成员是一个坏主意;对于任何查看代码的人来说,看起来您正在访问实例成员。 (至少,我认为这就是为什么IDE没有这样做。)
你清楚地意识到这是一个糟糕的主意,而且你知道如何正确地做到这一点,但是对于其他任何人来问问题/答案,正确的方法是通过课程名称,例如:
System.out.println(Emp.getBankVaultValue());
另一个(emp.getBankVaultValue()
)正常工作,但它是一种语法怪癖。