Java Lombokのインストールと使い方(Eclipse)

Java EclipseへのLombokのインストールとLombokのアノテーションのサンプルです。
(確認環境:Java8,Eclipse4.8,Windows10)

目次

サンプル lombokとは
  lombokの取得方法
  lombokを2ステップでインストールする
  @Data (getter,setter + 他)
@Slf4j (ログを出力する)
@Getterと@Setter (getterとsetter)
@AllArgsConstructor (全項目でコンストラクタ)
@NoArgsConstructor (デフォルトコンストラクタ)
@RequiredArgsConstructor (finalがある項目でコンストラクタ)

lombokとは

  • getterとsetter等の定形コードを記述しなくて良くなる機能を持つライブラリです。
  • アノテーションを付けることで実現します。
  • ロンボックと呼びます。
  • 機能はそれ以外にもあります。以下のLombok featuresのリンクを参照願います。
    https://projectlombok.org/features/all

lombokの取得方法

jarファイルを取得する

lombok公式のサイトまたはMavenRepositoryのサイトからjarファイルをダウンロードします。

https://projectlombok.org/download

https://mvnrepository.com/artifact/org.projectlombok/lombok

MavenRepositoryの場合は以下の場所にあります。
上記リンクからバージョンを選択して、以下の図の「Files」の横にあるjarをクリックするとダウンロードできます。

 

lombokを2ステップでインストールする

Lombokのインストールは2ステップの作業が必要です。

STEP1

1.エクスプローラーで、取得したlombok-1.x.x.jarをダブルクリックします。

2.ダイアログが表示されます。

①の「Specify location」をクリックして、使用するEclipse(eclipse.exe)を指定します。

②の箇所にパス付きでEclipseが表示されます。チェックが入っていることを確認し、右下の「Install/Updateボタン」を押します。

インストールが完了するとInstall successfulと表示されます。
「Quit Installer」ボタンを押してダイアログを閉じます。

 

STEP2

クラスパスに追加

eclipse.iniに-javaagent:D:\...\lombok.jarが追記されています。
その記載されたlombok.jarをEclipseのクラスパスに追加します。

クラスパスに追加する手順は、以下を参照願います。
Eclipse jarファイルをクラスパスに設定する方法

 

@Dataを指定 (getter,setter + 他)

package test1;
import lombok.Data;

@Data
public class Product {
    private String name;
    private int price;
}

2行目は、lombok.Dataをインポートしています。
4行目の@Dataアノテーションを付けると6,7行目の値は自動でgetterとsetterが付いていることになります。

アウトラインを見ると、getterとsetterが付いていることがわかります。
その他にequals()、hashCode()、toString()なども生成されます。

 

@Slf4jを指定 (ログを出力する)

package test1;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class Test1 {
	public static void main(String[] args) {
//		Logger log = LoggerFactory.getLogger(Test1.class);
		String str = "猫";
		log.info("あれは{}です", str); 
		//00:55:46.097 [main] INFO test1.Test1 -あれは猫です
	}
}

slf4jのログを出力する場合は、10行目が必要ですが7行目の@Slf4jアノテーションによって不要になります。結果として記述量が減ります。
12行目は、「log」を指定する必要があります。

 

@Getterと@Setter (getterとsetter)

getterとsetterのみ指定する場合です。

package com.example.todo.domain.model;

import lombok.Getter;
import lombok.Setter;

public class Product {
	@Getter
	@Setter
	private String id;
    private String name;
    private int price;
}

アノテーションの直下の項目のみが有効になります。

アウトラインを見ると「id」のgetterとsetterがあります。

 

@AllArgsConstructor (全項目でコンストラクタ)

@AllArgsConstructorは、全項目のコンストラクタを生成します。

package com.example.todo.domain.model;

import lombok.AllArgsConstructor;

@AllArgsConstructor
public class Product {
	private String id;
    private String name;
    private int price;
}

アウトラインを見るとコンストラクタがあります。

@AllArgsConstructor等は、他の@NoArgsConstructor等との併用も可能です。
その場合コンストラクタは2つになります。

 

@NoArgsConstructor (デフォルトコンストラクタ)

@NoArgsConstructorは、デフォルトコンストラクタを生成します。

package com.example.todo.domain.model;

import lombok.NoArgsConstructor;

@NoArgsConstructor
public class Product {
	private String id;
    private String name;
    private int price;
}

アウトラインを見るとデフォルトコンストラクタがあります。

 

@RequiredArgsConstructor (finalがある項目でコンストラクタ)

@RequiredArgsConstructorは、finalがある項目でコンストラクタを生成します。

package com.example.todo.domain.model;

import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class Product {
    private long id;
    private String name;
    private final int price;
}

アウトラインを見るとコンストラクタの引数はfinalがあるintのみです。

関連の記事

Eclipse getterとsetterを自動で作成する方法

△上に戻る