簡體   English   中英

導入類時的Java運行代碼

[英]Java run code when class is imported

我知道這里有一個問題在回答這個問題,就像我以前讀過的一樣。 我只是一生無法找到它,也無法在Google上找到它。

我以前記得的問題是有關調用各種方法和代碼段的順序,並且有一個特定的部分顯然被稱為第二個類的導入(也可用於執行令人討厭的意外事情)。 這叫什么/我將如何去做?

如果我沒記錯的話,是這樣的:

Java檔案1:

...
import somepackage.myclass; //prints "class imported"
...
myclass a = new myclass(); //print "constructor"
...

Java檔案2

package somepackage;

public class myclass {
    ...
    //Something to print out "class imported"
    ...
    public void myclass(){
      System.out.println("constructor");
    }
}

這個問題/答案有幾個這樣的結構,但我不記得他們叫什么。 有人可以指出我正確的方向嗎?

嘗試這個:

public class Myclass {
    static {
        System.out.println("test");
    }
}

這稱為靜態初始化塊

您可能正在考慮靜態初始化器:

package somepackage;

public class myclass {
    static{
      System.out.println("class imported");
    }

    public void myclass(){
      System.out.println("constructor");
    }
}

首次訪問類時,將運行該類的靜態初始化器,以創建實例或訪問靜態方法或字段。

暫無
暫無

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

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