Java Lombok概要

Lombokとは

  • アノテーションを宣言すると、gettersettertoStringequalsなどの「繰り返し書くコード」をコンパイル時に自動生成してくれる。
  • ただし、GetterやSetterの自動生成を安易に行うと、オブジェクト指向を壊すことにもなる。
  • そのため、利用しているフレームワークがGetterやSetterを必要としていて、やむを得ない場合でなければ、安易に使うべきではないかもしれない。

環境設定

Lombokはツールによって、別途プラグインのインストールや設定が必要になる。最近のIntelliJ IDEAであれば、別途プラグインをインストールしなくても、設定だけで動作する。各ツールごとのインストール方法を調べて設定してほしい。

Hello World

build.gradleを次のように作成する。

plugins {
    id 'java'
}

group 'com.devkuma'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'

    compileOnly 'org.projectlombok:lombok:1.18.20'
    annotationProcessor 'org.projectlombok:lombok:1.18.20'

    testCompileOnly 'org.projectlombok:lombok:1.18.20'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.20'
}

HelloLombokTutorial.javaファイルを作成し、次のようにコードを書く。

package com.devkuma.tutorial.lombok;

import lombok.Data;

@Data
public class HelloLombokTutorial {

    private String string;
    private int number;
    
    public static void main(String[] args) {
        HelloLombokTutorial tutorial = new HelloLombokTutorial();

        tutorial.setString("Hello Lombok!!");
        tutorial.setNumber(999);

        System.out.println(tutorial);
    }
}

実行結果:

Main(string=Hello Lombok!!, number=999)
  • クラスに@Dataアノテーションを宣言することで、gettersettertoStringなどのメソッドが自動生成された。
  • Lombok自体はコンパイル時だけ使用するため、依存スコープはcompileOnlyにする。

参考