*目次 [#r23e0dc7] #contents *Lombok [#fc0bde6a] Lombokとは、Javaのコードの省略記法をIDEに提供する **本家 [#p8facfe5] https://projectlombok.org *紹介ページ [#ra61fbb1] http://qiita.com/opengl-8080/items/671ffd4bf84fe5e32557 *事前準備 [#o1e9670c] ビルドパスに通しておく **gradleの場合だと [#ebb0bb70] // https://mvnrepository.com/artifact/org.projectlombok/lombok compile group: 'org.projectlombok', name: 'lombok', version: '1.16.16' を追加する。 バージョンは、Repositoryサイトで新しいのを取ってくること *GetterSetterを省略したい [#t7b48d2a] **やり方 [#va708ad9] class定義の上に、@Dataをつける なので import lombok.Data; も必要になる **例 [#c8b71cc1] import lombok.Data; @Data public class Member { private String id; private String name; } *その他の例 [#i4232aed] **定数だけのクラスを定義したい [#q9ce73f9] @Value **Getterだけのクラスを定義したい [#t7ccc2af] @Getter ***遅延評価とキャッシュ [#e84efa98] lazy **Setterだけのクラスをつくりたい [#occfb8de] @Setter **よくある、値を入れるだけのコンストラクタを [#y7c9af78] ***変更するかもしれない値の場合 [#gb0bb98d] @AllArgsConstructor ***変更しない値のばあい [#s640091d] @RequiredArgsConstructor *イコールの定義 [#if404c8c] @EqualsAndHashCode があるが、イコールは、細かい指定しないと、 デバッグたいへんだろうから、 中身が明示的のほうがうれしいかも。 *委譲 (Delegate) [#h74d1283] これは、ありがたい。っていうか、Javaの標準に入れてほしいぐらい **サンプル [#g30f3ec2] public class CardList { @Delegate List<String> list = new ArrayList<String>(); } *複数スレッドで実行したい場合 [#df5182df] **例 [#s58a5084] @Synchronized public void countup() { // 同期化された処理 }