職場の先輩が使っていたテクニックをメモ
1. Lombokとは
ボイラープレートコード(言語仕様上省く事ができない定型的なコード)をコンパイル時に自動生成してくれる便利なライブラリです。
例えるとJavaBeanのgetter/setter等をアノテーションで済ませられます。
2. やりたいこと
staticメソッドしか持たないUtility的なクラスで、インスタンス化を防ぎたい!
3. privateコンストラクタを作ってみる
3-1. 一般的なprivateコンストラクタ
EffectiveJavaにもこのような感じで記載されていた記憶があります。
サンプル
public class HogeUtils {
private HogeUtils() {
// some exception
}
// some static method
}
3-2. Lombokで省略したprivateコンストラクタ
@NoArgsConstructor
をクラスにアノテートするだけです
サンプル
@NoArgsConstructor(access=AccessLevel.PRIVATE) // <- ここ
public class HogeUtils {
// some static method
}
4. つまりどういうこと?
@NoArgsConstructor
デフォルトコンストラクタを生成するためのアノテーション。
TERASOLUNA Server Framework for Java (5.x) Development Guideline | 11.2. ボイラープレートコードの排除(Lombok)
オプションのaccess=AccessLecel.PRIVATE
はその名の通り、アクセス修飾子をprivateで設定しています。
このアノテーションがついていると、よくやるやり方と同じコードが生成されるということになります。
Lombokすごい、以上。