[英]Static method is not accessible through a reference variable in java
我只是想看看我是否可以使用初始化為“ null”的“引用變量”通過“ static”方法訪問靜態變量(我不建議這樣做)。 但是我似乎根本無法訪問該方法。 似乎無法發現問題所在。
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()
使用emp.getBankVaultValue()
,它將起作用。 您可以通過該實例引用訪問靜態方法(即使它為null
,也不會取消引用,因為getBankVaultValue
是靜態的),並且該靜態方法當然可以訪問靜態變量。 但是您的IDE並沒有為您提供建議,因為正如您所說,通過實例引用訪問靜態成員是個壞主意。 對於任何查看代碼的人來說,似乎您正在訪問實例成員。 (至少,我認為這就是IDE不這樣做的原因。)
您清楚地知道這是一個壞主意,並且知道如何正確地進行操作,但是對於任何其他提出問題的人,通過類名進行訪問的正確方法是,例如:
System.out.println(Emp.getBankVaultValue());
另一個( emp.getBankVaultValue()
) 有效 ,但這是語法上的怪癖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.