静的な初期化子がこのスレッドから実行されたとき、何のトレッドを読みましたか。 Static initializer in Java。しかし、私は誰か他の人が書いた古いコードを実行しているので、なぜ彼がそれを使ったのかを理解できないように思えます。私のクラスはJavaの静的初期化子が冗長であるようです
:
public class ClassA extends Thread {
.... private vars ....
private static Config config;
static {
config = null;
}
public ClassA(Config config) {
ClassA.config = config;
}
}
なぜ彼はこれをしませんでしたか?私はクラスがredeneredされていると私は、静的initalizerを使用しない場合、インスタンス変数はinitalizer得る一方で、それは、設定=> nullを設定しますので、静的initalizerは、右のコンストラクタの前に、右後、コールを取得することを理解し
public class ClassA extends Thread {
.... private vars ....
private static Config config = null;
public ClassA(Config config) {
ClassA.config = config;
}
}
スーパー。 2人のクラスが同じことをしているのではないでしょうか?
したがって、私は2番目の実装を使用することはできますし、機能を変更することはできません。 – Churk
おそらく、クラスの作成者はもっと複雑な初期化を行い、その後静的初期化子を削除せずにそれを削除しました。しかしそれはちょうど推測です。とにかく、あなたの答えは正確で正確です(+1)。 –
@Churkこの特定のケースでは?はい。 –