簡體   English   中英

無法通過Java中的引用變量訪問靜態方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM