NetBeans IDEでの注釈プロセッサのサポート、パートI: プロジェクトLombokの使用

このページの内容は、NetBeans IDE 7.2、7.3、7.4および8.0に適用されます

カスタム注釈がNetBeans IDEでどのように機能するかを示すために、複数のJavaコード要素(取得メソッド、設定メソッド、コンストラクタなど)を自動生成するのに便利な、プロジェクトLombokを使用します。この機能の詳細は、プロジェクトLombokのWebサイトを参照してください。ただし、プロジェクトLombokに含まれる一部の機能は、開発環境によって機能しない場合があります。

このチュートリアルを完了するには、次のソフトウェアとリソースが必要です。

ソフトウェアまたはリソース 必須バージョン
NetBeans IDE 7.2, 7.3, 7.4, 8.0
Java Development Kit (JDK) バージョン7または8
lombok.jar v1.12.4以降

Javaプロジェクトの新規作成

この課題では、単純なJavaプロジェクトと、動作している注釈を示すMyBooks.javaという名前のクラスを作成します。

  1. メイン・メニューから「ファイル」>「新規プロジェクト」を選択して新規プロジェクト・ウィザードを開きます。
  2. 「Java」カテゴリで「Javaアプリケーション」プロジェクト・タイプを選択します。「次」をクリックします。
  3. ウィザードの名前と場所ページで、プロジェクト名として「TestAnn」と入力します。
  4. 「メイン・クラスの作成」フィールドに「testann.TestBooks」と入力して、デフォルトのクラス名を置き換えます。「終了」をクリックします。
    新規プロジェクト・ウィザードのスクリーンショット

    「終了」をクリックすると、IDEによってJavaアプリケーション・プロジェクトが作成され、TestBooks.javaクラスがエディタに表示されます。ここで、新しいプロジェクトが「プロジェクト」ウィンドウに表示され、TestBooks.javaクラスが「ソース・パッケージ」ノードの下にあるtestannパッケージに含まれていることが確認できます。

  5. 「プロジェクト」ウィンドウで「testann」パッケージ・ノードを右クリックし、「新規」>「Javaクラス」を選択します。
  6. 「クラス名」に「MyBooks」と入力し、そのクラスがtestannパッケージ内に作成されることを確認します。「終了」をクリックします。

    「終了」をクリックすると、IDEによって新しいクラスがエディタに表示されます。

  7. ソース・エディタで、次の3つのフィールドをMyBooks.javaに追加します。
    package testann;
    
    public class MyBooks {   
        private int year; //fields
        private String title;
        private String author;
    
    }
  8. 挿入カーソルをクラス宣言に置き、[Ctrl]-[Space]を押して、エディタのコード補完サポートを呼び出します。
  9. コード補完リストで「MyBooks (int year, String title, String author) - generate」を選択して、MyBooks.javaのコンストラクタを生成します。
    エディタでのコード補完のスクリーンショット
  10. 変更を保存します。

プロジェクトのカスタム注釈(lombok.jar)の有効化

この課題では、プロジェクトの「プロパティ」ウィンドウを変更して、プロジェクトのクラスパスにライブラリを追加し、エディタでの注釈処理を有効にします。

  1. lombok.jarファイルをダウンロードして、システムに保存します。
  2. TestAnn」プロジェクトのノードを右クリックして、「プロパティ」を選択します。
  3. 「プロジェクト・プロパティ」ダイアログで「ライブラリ」カテゴリを選択します。
  4. 「コンパイル」タブで「JAR/フォルダの追加」をクリックし、ダウンロードしたlombok.jarファイルを指定します。
    「プロパティ」ウィンドウ内の「ライブラリ」カテゴリのスクリーンショット

    「コンパイル」タブで追加されたリソースは、Javaコンパイラ-classpathオプションに相当します。lombok.jarは、注釈定義と注釈プロセッサの両方を含む単一のJARファイルであるため、これをプロジェクトのクラスパス(つまり「コンパイル」タブ)に追加する必要があります。

  5. 「プロジェクト・プロパティ」ウィンドウで「コンパイル」カテゴリを選択します。
  6. 「注釈処理を有効にする」チェックボックスが選択されていることを確認し(デフォルトでは有効)、「エディタでの注釈処理を有効にする」チェックボックスを選択します。
    「プロパティ」ウィンドウ内の「コンパイル」カテゴリのスクリーンショット

    「注釈処理を有効にする」チェックボックスを選択すると、プロジェクトのビルドおよびコンパイル時に注釈処理が有効になります。このチェックボックスが選択されていないと、-proc:noneオプションがJavaコンパイラに渡され、どのような注釈処理もされずにコンパイルが実行されます。このため、コードで注釈を処理する場合は、「注釈処理を有効にする」チェックボックスを選択する必要があります。

    「エディタでの注釈処理を有効にする」チェックボックスを選択することにより、エディタに注釈処理の結果が表示されるようになります。注釈プロセッサによって生成されたどの追加アーティファクト(クラス、メソッド、フィールドなど)もIDEエディタに表示されるようになり、コード補完、「ナビゲータ」、「型に移動」、「使用状況を検索」などで使用できるようになります。

  7. 「プロジェクト・プロパティ」ウィンドウで「OK」をクリックして、MyBooks.javaファイルに戻ります。

「プロジェクト」ウィンドウで「ライブラリ」ノードを展開すると、lombok.jarがプロジェクト・ライブラリとして表示されるようになっていることがわかります。

「プロジェクト」ウィンドウのスクリーンショット

Lombokカスタム注釈を使用したアプリケーションの記述

  1. MyBooks.javaファイルで、MyBooksクラス定義の前に「@Data」と入力します。@Dataは、Javaクラスのボイラープレート・コード(すべてのフィールドの取得メソッド、finalではないすべてのフィールドの設定メソッド、およびクラスのフィールドを含む適切なtoStringequalshashCode実装)を生成する注釈です。

    プロジェクトLombokがサポートする注釈の詳細は、Lombokの機能の概要を参照してください。

  2. エディタの左マージンにあるヒントをクリックして、lombok.Dataのインポートを追加します。
    エディタ内のヒントのスクリーンショット

    この結果、エディタのコードは次の例のようになっているはずです。

    package testann;
    
    import lombok.Data;
    
    
    @Data
    public class MyBooks {
    
        private int year; //fields
        private String title;
        private String author;
    
        public MyBooks(int year, String title, String author) {
            this.year = year;
            this.title = title;
            this.author = author;
        }
    }

    取得メソッド、設定メソッド、toStringなどの必要なコード・アーティファクトが生成されているのが「ナビゲータ」ウィンドウで確認できます。@Data注釈によって、一般的なクラスに必要なすべてのボイラープレート・コードが生成されました。

    「ナビゲータ」ウィンドウのスクリーンショット

    コード補完ウィンドウを呼び出すと([Ctrl]-[Space])、生成されたアーティファクトも選択可能になっているのが確認できます。ここで、プロジェクトがコンパイルされ、生成されたアーティファクトをプログラムの他の部分からコールできることを確認します。

  3. mainメソッドでTestBooks.javaファイルを開き、次のコード(太字)を追加して、MyBooksクラスの新規オブジェクトを作成します。
    package testann;
    
    public class TestBooks {
    
        public static void main(String[] args) {
            MyBooks books = new MyBooks(2009, "My Beautiful Dream", "John Smith");
        }
    }
  4. books変数の値を出力するための次のコードを追加します。

    値を返すため、lombok.jarによって自動生成された取得メソッドをコールします。入力中に、自動生成されたアーティファクトをコード補完ウィンドウから使用できます。

    package testann;
    
    public class TestBooks {
    
        public static void main(String[] args) {
            MyBooks books = new MyBooks(2009, "My Beautiful Dream", "John Smith");
            System.out.println("Year: " + books.getYear() + ", Title: " + books.getTitle() +  ", Author: " + books.getAuthor());
        }
    }
  5. 変更を保存します。
  6. 「プロジェクト」ウィンドウでプロジェクト・ノードを右クリックし、「実行」([F6])を選択します。

    このアプリケーションを実行すると、アプリケーションが正常にコンパイルされたことを示す次の出力が表示されるはずです。

    「出力」ウィンドウのスクリーンショット

Lombok注釈プロセッサによって生成されたアーティファクトが、プログラムの他の部分からアクセス可能であることが確認できます。

次の手順

  • Java SEのドキュメント - 注釈
  • Java SEのチュートリアル - 注釈
get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo