2

重複の可能性:
静的初期化ブロック

次はJavaで何を意味しますか?

static {                                        
  WritableComparator.define(IntPair.class, new Comparator());
}
4

2 に答える 2

9

これは、クラスのロード時に実行される静的初期化ブロックを意味します。

初期化に何らかのロジックが必要な場合 (たとえば、エラー処理や複雑な配列を埋めるための for ループ)、単純な代入は不十分です。インスタンス変数はコンストラクターで初期化でき、エラー処理やその他のロジックを使用できます。クラス変数に同じ機能を提供するために、Java プログラミング言語には静的初期化ブロックが含まれています。

于 2013-01-18T19:09:19.920 に答える
1

これは、そのブロック内のコードが、型が読み込まれるとき、コンストラクターが呼び出される前、ただしフィールド初期化子が実行された後に 1 回実行されることを意味します。

静的ブロックにはインスタンス フィールドを設定できないことに注意してください。this他の静的メソッドと同様に、そこには inの概念はありません。

于 2013-01-18T19:11:27.750 に答える