Works by

Ren's blog

@rennnosuke_rk 技術ブログです

【Java】Lombokでアノテーションだけでクラスのアクセサを設定する

Lombokとは

Lombokは、Javaクラスにアノテーションを付加するだけでかんたんにGetter,Setterなどのアクセサを設定することができるライブラリです。アクセサを書かなくても良い分 Javaクラス定義を短く書くことができます。

Lombokのダウンロード

実際にはIDE+ビルドツールで使うと思いますが、
今回は普通にshell上のコマンドでコンパイルします。

Lombok公式ヘッダー部の"Download"タブをクリックし、遷移先のページでjarファイルをダウンロード。

f:id:rennnosukesann:20180414232829p:plain

f:id:rennnosukesann:20180414232840p:plain

IDEごと、ビルドツールごとのインストール方法はLombok公式ヘッダー部の"Install"タブを参照してください。

f:id:rennnosukesann:20180414233221p:plain

Usage

ディレクトリ構成

.
└── com
    └── jp
        └── src
            ├── Cube.java
            ├── Main.java
            └── lombok.jar

Cube.java

package com.jp.src;

import lombok.Data;

@Data
public class Cube {
    private int width;
    private int height;
    private int depth;
}

Main.java

package com.src.src;

import com.jp.src.Cube;

public class Main {

    public static void main(String[] args) {

        Cube cube = new Cube();

        cube.setWidth(1);
        cube.setHeight(2);
        cube.setDepth(3);
        
        System.out.println(cube.getWidth());
        System.out.println(cube.getHeight());
        System.out.println(cube.getDepth());

    }

}

コンパイル&実行

Lombokのjarファイルをコンパイルする場合、

$ javac -cp lombok.jar ... (コンパイルしたいjavaファイル)

コンパイルします。

$ cd ./com/jp/src
$ javac -cp lombok.jar Main.java Cube.java
$ cd ../../../
$ java com.jp.src.Main
1
2
3

クラス定義に書かなくても、アクセサを使用することができることが確認できました。

参考文献

Project Lombok