2017-02-21 11 views
0

基本的に、私はいくつかの論理情報のための単純なコンテナで多くのクラスを作り続けています。getterとsetterを使って簡単なクラスを生成する方法はありますか?

など。クラスの本;プロパティISBN、タイトル、著者を持っています。すべてのプロパティのgetterとsetterを持っています。

私はeclipseがgetterとsetterを自動的に生成できることを知っていますが、a)プロパティコメントを正しくコピーしない、b)すべてのプロパティを入力した後、それぞれを右クリックしなければならない自動的にコメントを生成します。

私はそれが些細なことは知っていますが、私はたぶん過去数年間でこれをやって数日を費やしたと考えています。そこにはもっと良いオプションがあるのだろうかと思っています。

私は、あなたがプロパティの型、名前、および説明を入力するテーブルを持つウィザードを想像しています。もしそれがヌルであることが許されていればそれをチェックし、それがコンストラクタによって生成されるようにし、すべての正しいコメント、nullをチェックする検証呼び出し、getterとsetterを持つクラスを取得します。

もしそうでなければ、このようなことをするためにEclipseを拡張する方法はありますか?私は自分自身の外部プログラムを作ることができましたが、外でそれを行うのはちょっと厄介なようです。そして毎回eclipseを更新しなければなりません。

+0

の場合あなたはゲッターとセッターにコメントしています、あなたは役に立たない仕事をしています。 – Kayaman

+0

プラグインのメカニズムを使用しますか?そのようなことは過去に存在していましたが。私はEclipseをもう使用しないので、何が利用可能であるかわからない。 –

+0

getterとsetterを忘れてしまった場合は、lombok -https://projectlombok.org/ – Razib

答えて

0

あなたはそれがJavaクラスを生成する注釈プロセッサであるhttp://immutables.github.io/

を使用することができます。実行するためのプラグインは必要ありません。アノテーション処理を有効にするだけで十分です。

抽象化を作成すると、あなたのための具体的な実装が生成されます。対応するjavadocでも生成されたクラスにコピーされます。あなたは以下のようなインターフェイスを作成する必要があります例えば

import org.immutables.value.Value; 
// Define abstract value type 
@Value.Immutable 
public interface ValueObject { 
    String name(); 
    List<Integer> counts(); 
    Optional<String> description(); 
} 

そして、あなたはこのようにそれをインスタンス化します。

// Use generated immutable implementation 
ValueObject valueObject = 
    ImmutableValueObject.builder() 
     .name("My value") 
     .addCounts(1) 
     .addCounts(2) 
     .build(); 

利用できる多くのオプションがあります。 (それはあなたが達成しようとしているものであれば)私が使用して文書の重複を避けるため

1

/** 
* Represents the book title 
*/ 
private String title; 

/** 
* Get {@link #title} 
*/ 
public String getTitle() { 
    return title; 
}; 

あなたは日食自動以下のコメントテンプレートを使用して、それを生成することができます:

/** 
* Get {@link #${field}} 
*/ 
+0

これは実際には非常に便利です – Andy

関連する問題