今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

Java において static 修飾するときの注意

Java において、static 修飾を単独で使うときには注意が必要。static 修飾は、必要最低限度の範囲内で使うのが好ましい。
クラス変数があったとしたら、それは定数である可能性が高い。初期化後に更新することがなければ、static final にして定数として定義し、static initializer で初期化すればよい。
変更される可能性があるクラス変数は、そのクラス変数に複数スレッドからアクセスする場合は、排他しなければならないことにも注意する必要がある。
メソッドを static 修飾してクラスメソッドにしようと考えたとき、そのメソッドは本当にインスタンス無依存なのか注意した方がよい。クラスメソッドを、コードのほかの部分で使用していた場合は、インスタンスメソッドに変更することはできない。メソッドをクラスメソッドにすべきかどうかは、そのクラスと、そのクラスに存在するそのメソッドの意味付けをもとに判断しなければならない。