Lombokの使い方

Lombokの使い方

プロジェクトにLombokをインストールしてgetterやsetterを省略します。

getterやsetter、コンストラクタなどのロジックと関係ないコードをボイラープレートコードと言います。Lombokはそれをアノテーション付加することにより生成してくれます。

Lombokはこちらからダウンロードします。

lombok.jarがダウンロードされるのでダブルクリックするとIDEを検出してくれます。

Lombokを使う

IDEにチェックを入れ、「Install / Update」をクリックします。

eclipse.iniやsts.iniが修正(追加)されます。

mavenを使用している場合、pom.xmlに以下を追加します。

それ以外の場合は、Eclipse(STS)を再起動して使いたいプロジェクトを右クリックして「プロパティー」を選択します。

ライブラリタブを選んで「外部Jar」からlombok.jarを選んで完了です。

@Dataアノテーションを使用するとgetter,setterメソッドを省略することができます。

アウトラインビューを見るとgetter,setterが表示されているのがわかります。

private finalとするとsetterメソッドは生成されないようになっていて便利です。

Lombokを使う
@AllArgsConstructorアノテーションを使用すると引数ありコンストラクタが生成されるようになります。
この時、引数なしコンストラクタは生成されなくなります。

build.gradleの場合、dependencies{}内に以下を記述します。

これでlombokが使えるようになります。

lombok.extern.slf4j.Slf4j

lombokではSlf4jという便利なロガーが用意されています。

@Slf4jというアノテーションをクラスにつければlogが使えます。

こんな感じで出力されます。

{}はプレースホルダーみたいなものです。いくつでも{}を指定でき、そのプレースホルダーの分だけ引数が増えます。

lombok.experimental.Accessors

lombokにはAccessorsというアノテーションもあって、これはエンティティにつけます。

エンティティに@Accessors(chain = true)とつけると、セッターのメソッドチェーンが可能になります。

こんなイメージです。

エンティティに@Accessors(fluent = true)とつけると、プロパティ名がそのままメソッド名になりますし、メソッドチェーンも有効になるようです。

以下、エンティティです。

このエンティティの場合、以下のようなことが可能になります。getEmpnoではなく、empnoというメソッドに変わります。メソッドチェーンも可能です。

引数があればセッターですし、なければゲッターです。

@Dataでファクトリメソッドを作成する

@Data(staticConstructor="of")というように記述すると、staticメソッドofが作成されます。

上記のように記述するだけでメソッドが生成されます。

Eclipseのアウトラインビューで生成されたメソッドを確認します。

Lombokを使う

使う側のクラスでは以下のようにofメソッドでインスタンス生成が可能です。

@Builderでビルダーパターンを実装する

@Builderを使えばビルダーパターンが実装されます。

@Valueを使用してgetterを用意します。

呼び出し側は以下のように記述します。

getter,setterを上書きする

@Dataなどを使用してgetter,setterを生成して、一部のプロパティだけgetter,setterだけ特別な処理をさせたい場合、getter,setterを上書きすることができます。

getter,setterを記述するとlombokで自動生成されたgetter,setterを上書きしてくれます。特に難しい設定は不要です。

lombok.valを使う

lombok.valをインポートすると、val型を定義することができます。

val型の特徴として以下があります。

  • 型推論される
  • 定数扱いになる(final修飾子がつく)

コード例です。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA