この記事では現在 Stage 3 の Class Static Blocks について解説する。 なお、まだ現時点で Stage 3 であるため実装状況や細かい仕様は今後変更される可能性がある。 概要 Class Static Blocks プロポーザルは、クラス内でスタティックなメンバにアクセスできるブロックの構文を導入する。 次のコードの static { から始まるブロックが新たに導入される構文である。このとき、スタティックブロック内のthis.fooはスタティックなメンバである。 class C { static foo; static { this.foo = "foo"; } } スタティックブロックはクラスCが評価されるタイミングで実行される即時実行関数のようなものと見ることもできる。また、クラスは複数のスタティックブロックを持つことができ、その場合は上から順に実行される。