我熟悉C#,現在學習Java中的靜態類。 在下面的代碼中,我假設如果staticClass構造函數已在啓動時初始化。但事實並非如此。在主要方法中調試光標到第一個循環的斷點時。我收到一個錯誤「staticClass not loaded」。 問題:有沒有一種方法可以在main方法執行之前執行靜態類構造函數?或爲什麼它沒有加載?類似的靜態類在啓動時加載到C#中。但在Java?認爲這是一個不工作的代碼。
我的一些代碼的工作是這樣的: class A
{
static SomeClass a = new Someclass("asfae");
}
SomeClass的包含所需的構造。 此編譯的代碼沒有任何警告。但是,我在系統中獲取代碼的危害: 系統 此代碼的危險部分「的SomeClass的構造函數已經從靜態構造函數和/或 靜態初始化器被稱爲」只是使它變得更好警告系統中可能存在的缺陷
這兩個代碼塊是否做同樣的事情? class A {
public static int s;
A(){}
static A(){s = 100;}
}
和 class A {
public static int s=100;
A(){}
//static A(){s = 100;} do not use
}
他們做同樣的事情?
請注意更新,我的問題沒有明確闡述。對不起。 讓我們假設我們有下面的代碼: class Foo extends/implements AnAbstractClass/AnInterface { /* to make sure the constructor with int as input is implemented */
Foo(int magicInt) { magicInt +