SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

Java特有の冗長なコードを簡潔に記述する「Lombok」

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

 Javaは言語仕様上の制約により、ボイラープレートコード(自明だが省略できないお決まりのコード断片)がいくつかあります。例えば、メンバ変数を読み書きするだけのgetterメソッドやsetterメソッドがこれにあたります。Lombokを使えば、これらJava特有の冗長なコードを、見やすく簡潔なものにすることができます。本記事ではLombokを利用して、ボイラープレートコードをシンプルに記述する方法について解説します。

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

はじめに

 今やJava開発に必要不可欠となったものの一つに、IDEの存在があります。例えばEclipseではメンバ変数さえ定義すれば、getter/setterの自動生成や、equalsメソッドやhashCodeメソッド、toStringメソッドなどの自動生成などさまざまな場面でコーディングを強力にサポートしてくれます。

 これは大変便利な機能ですが、裏を返せばJavaの言語仕様はボイラープレートコード(決まりきったコード)が豊富に存在することを意味します。つまり、本質的なロジック以外の冗長なコードが多いということであり、決して読みやすいコードとは言えません。

 その後のメンテナンスも考えれば、IDEの自動生成がボイラープレートコードに対する完全な解決策とはなっていないことは確かです。

Lombokとは

 LombokはMITライセンスで作られた、Java特有のボイラープレートコードを解消するためのライブラリです。

 LombokではEclipseのような自動生成ではなく、アノテーションを付与することによりボイラープレートコードを実装したのと同じ効果を得ることができます。

インストール

 Lombokを使った開発は、Javacによる直接コンパイルはもちろんのこと、EclipseやNetBeansなどの開発環境に対応しています。今回はEclipseを利用した開発を説明致します。

  • Project LombokのサイトよりLombok.jarをダウンロードします(2013年8月現在、最新版は0.12.0です)。
  • Lombok.jarをダブルクリックし、インストーラを起動します。
Lombokインストーラー
Lombokインストーラー
  • お使いのIDEチェックし、Install/Updateボタンを押下します。
  • Eclipseを起動し、Lombokを使いたいプロジェクト選択します。
  • プロジェクトの参照ライブラリにLombok.jarを追加します。
ビルドパスへの追加
ビルドパスへの追加

アクセスメソッド

 まずは、2つのメンバ変数をもつ会員クラスを例に挙げます。

 Lombokを利用しない通常のJavaの場合、2つのメンバ変数、idとnameに対する、他のクラスからアクセスためのgetterメソッドやsetterメソッドが必要になるため、下記のようにコードが肥大化しているのが分かります。

会員クラスのコード Lombok未使用版
public class Member {
    private String id;
    private String name;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

次のページ
@Data

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

五座 淳一(株式会社DTS)(ゴザ ジュンイチ)

株式会社DTS 金融企画部所属。主に大規模・金融機関向けシステム開発のアーキテクト担当しています。ウォーターフォール型の開発に、CIなどアジャイル開発のプラクティスを取り入れ、開発プロセスの改善を試みています。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7274 2013/08/20 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング