Lombok情報
Lombokとは
Lombok(ロンボック)は、JavaのDTO(Data Transfer Object)のような単調な処理が連続するコードを簡潔に記述するためのJavaライブラリです。アノテーション1つでクラスがDTOとして機能し、getter/setterメソッドやequalsメソッドを書く必要がなくなります。
例えば、以下のようなDTOをLombokを利用して書き直してみましょう。
public public class Author {
private final int id;
private String name;
private String surname;
public Author(int id) {
this.id = id;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
@Override
public int hashCode() {
final int PRIME = 31;
int result = 1;
result = prime * result + getId();
result = prime * result +
((getName() == null) ? 0 : getName().hashCode());
result = prime * result +
((getSurname() == null) ? 0 : getSurname().hashCode());
return result;
}
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (!(o instanceof Author)) return false;
Author other = (Author) o;
if (!other.canEqual((Object)this)) return false;
if (this.getId() == null ? other.getId() != null :
!this.getId().equals(other.getId())) return false;
if (this.getName() == null ? other.getName() != null :
!this.getName().equals(other.getName())) return false;
if (this.getSurname() == null ? other.getSurname() != null :
!this.getSurname().equals(other.getSurname())) return false;
return true;
}
}
50行を超えていたコードを6行で記述することができます。
@Data
public class Author {
private final int id;
private String name;
private String surname;
}
Lombokは、ビルドツールやIDE(統合開発環境)に組み込むことができます。
例えば、MavenでビルドするJavaプロジェクトにLombokを組み込む場合は、以下の依存関係をpom.xmlに記述します。
<dependencies>
・・・
<!-- 以下の依存関係を追加 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
そしてIDE(ここではIntellij IDEA)にLombokのプラグインをインストールします。
こうすると、フィールド変数の上に「@」を入力すると、Lombokのアノテーションの候補が表示されます。
なお、このプラグインにはDelombokという機能もあり、Lombokで簡略化したコードをgetterやsetterなどのメソッドにも変換する機能もあります。
ユースケース
Lombokを導入することで以下のようなメリットがあります。
- コードの記述量が減ることで、実装やテストの時間を短縮できる
- コードが見やすくなる
ただし、以下のようなデメリットもあります。
- デバッグが難しくなる場合がある
動作環境
Javaが動作する環境であれば、どのような環境でも動作します。
Lombokのライセンス
Lombokのライセンスは、MITライセンスに基づいています。ソースコード公開の有無に関わらず、自由な再利用が認められています。
製品ダウンロード
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
Java
ジャバ。サンマイクロシステムズ社(2010年にオラクル社に吸収合併)により開発されたプログラミング言語、及びその動作環境である Java VM(ジャバ仮想マシン) です。