だから私はこのスレッドから静的イニシャライザーがいつ何を実行するかについてのトレッドを読みました。Javaの静的初期化子。しかし、私は他の誰かによって書かれた古いコードに遭遇していて、なぜ彼がそれを彼のように使用するのか理解できないようです。
私のクラス:
public class ClassA extends Thread {
.... private vars ....
private static Config config;
static {
config = null;
}
public ClassA(Config config) {
ClassA.config = config;
}
}
なぜ彼はこれをしなかったのですか?
public class ClassA extends Thread {
.... private vars ....
private static Config config = null;
public ClassA(Config config) {
ClassA.config = config;
}
}
静的イニシャライザーは、再生成されるクラスとして呼び出されることを理解しているため、config => nullに設定されますが、静的イニシャライザーを使用しない場合、インスタンス変数はコンストラクターの直前とスーパーの直後にイニシャライザーを取得します。では、2つのクラスは同じことをしているのではないでしょうか。