簡體   English   中英

在靜態Java方法中訪問類

[英]Accessing class in static java method

我們具有要自動通過Subclass.me()訪問的“處理程序”子類。 在Java中是否可能與此類似:

public class Handler{
static Vector<Handler> register=new Vector<Handler>();
public static Handler me() {
        return register.get( this.class);// TODO
}
}

public class SubClass extends Handler{
     SubClass(){register.add(this);}// OK
}

為了澄清這個問題:調用靜態java方法時是否可以檢索CLASS? this.class顯然不起作用,因為'this'不可用。

靜態方法屬於該類。 它們不能被覆蓋。

MyClass.myStaticMethod()

是訪問靜態方法的唯一正確方法。

在Java中,您不能對非靜態方法/變量進行靜態引用。 所以,

  • 如果要訪問非靜態方法/變量,則必須首先創建該類的實例。
  • 如果要訪問靜態方法/變量,則可以直接通過類名稱訪問它,而無需創建實例。

因為,靜態方法和變量屬於類而不是實例,而非靜態方法和變量屬於實例而不是類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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