Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
アジェンダ
 はじめに
 Javaの冗長コード
 Lombokを使った冗長コードの排除
 Lombokを使ってBuilderを追加
 Maven依存関係
 IntelliJのPlugin
 まとめ
はじめに
 ここでは、Javaの冗長コードを排除するLombokを説明する
https://projectlombok.org/
Javaの冗長コード
 Javaの昔から抱える問題に「冗長コード」がある。
たとえば、以下のようなフィールドがあったとする。
/** productテーブルのEntity */
public class Product {
/** 商品コード...
Javaの冗長コード (1つ目)
 フィールドはprivate宣言が原則なので、
そのフィールドにアクセスするsetter/getterを書くのが冗長。
/** productテーブルのEntity */
public class Produ...
Javaの冗長コード (2つ目)
 コンストラクタを書くのが冗長。
/** productテーブルのEntity */
public class Product {
/** 商品コード */
private Integer productCo...
Javaの冗長コード (3つ目)
 クラスの文字列表現を返すtoStringメソッドを書くのが冗長。
/** productテーブルのEntity */
public class Product {
/** 商品コード */
private ...
Javaの冗長コード (4つ目)
 各フィールドが等価かを返すequalsメソッドを書くのが冗長。
/** productテーブルのEntity */
public class Product {
/** 商品コード */
private I...
Javaの冗長コード (5つ目)
 各フィールドの値に応じたハッシュ値を返す
hashCodeメソッドを書くのが冗長。
/** productテーブルのEntity */
public class Product {
/** 商品コード */...
Lombokを使った冗長コードの排除
 これら冗長コードを、Lombokを使って排除する。
/** productテーブルのEntity */
public class Product {
/** 商品コード */
private Integ...
Lombokを使った冗長コードの排除
 getter/setter、toString、
equals、hashCodeメソッドの追加
/** productテーブルのEntity */
@Data
public class Product {...
Lombokを使った冗長コードの排除
 デフォルトコンストラクタの追加
/** productテーブルのEntity */
@Data
@NoArgsConstructor
public class Product {
/** 商品コード *...
Lombokを使った冗長コードの排除
 フィールド初期化用コンストラクタの追加
/** productテーブルのEntity */
@Data
@NoArgsConstructor
@AllArgsConstructor
public cla...
Lombokを使った冗長コードの排除
 以上
/** productテーブルのEntity */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Product {
/** ...
Lombokを使ってBuilderを追加
 Bulderを追加する。
/** productテーブルのEntity */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public...
Lombokを使ってBuilderを追加
 Bulderを使う。
Product product = Product.builder()
.productCode(1)
.productName(“ガム”)
.build(); 任意のフィール...
Maven依存関係
 Maven依存関係に下記を追加する。
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifa...
IntelliJのPlugin
 IntelliJのPluginを追加する。
設定画面を開いて
「Plugins」を選択 キーワードに
「lombok」を入力
リストに出ない場合は
「Browse」をクリック
IntelliJのPlugin
 IntelliJのPluginを追加する。
「Lombok Plugin」を選択
ダウンロードと
インストールをする
IntelliJのPlugin
 IntelliJのPluginを追加する。
IntelliJを
再起動して完了
まとめ
 Lombokを使って定型的なコードをなるべく排除し、
それで浮いた時間を使って本来やるべき実装に集中しましょう。
Lombokのススメ
Nächste SlideShare
Wird geladen in …5
×

Lombokのススメ

799 Aufrufe

Veröffentlicht am

Lombokの簡単な使い方

Veröffentlicht in: Technologie
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THI5 BOOKS 1NTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THI5 BOOKS 1NTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

Lombokのススメ

  1. 1. アジェンダ  はじめに  Javaの冗長コード  Lombokを使った冗長コードの排除  Lombokを使ってBuilderを追加  Maven依存関係  IntelliJのPlugin  まとめ
  2. 2. はじめに  ここでは、Javaの冗長コードを排除するLombokを説明する https://projectlombok.org/
  3. 3. Javaの冗長コード  Javaの昔から抱える問題に「冗長コード」がある。 たとえば、以下のようなフィールドがあったとする。 /** productテーブルのEntity */ public class Product { /** 商品コード */ private Integer productCode; /** 商品名 */ private String productName; } フィールド宣言はprivateが原則
  4. 4. Javaの冗長コード (1つ目)  フィールドはprivate宣言が原則なので、 そのフィールドにアクセスするsetter/getterを書くのが冗長。 /** productテーブルのEntity */ public class Product { /** 商品コード */ private Integer productCode; /** 商品名 */ private String productName; /** 商品コードの取得 */ public Integer getProductCode() { return productCode } /** 商品コードの設定 */ public void setProductCode(Integer productCode ) { this.productCode = productCode } } フィールドごとに setter/getterを書く
  5. 5. Javaの冗長コード (2つ目)  コンストラクタを書くのが冗長。 /** productテーブルのEntity */ public class Product { /** 商品コード */ private Integer productCode; /** 商品名 */ private String productName; /** デフォルトコンストラクタ */ public Product() { } /** フィールド初期化をするコンストラクタ */ public Product(Integer productCode, String productName) { this.productCode = productCode; this.productName = productName; } } デフォルトコンストラクタ以外に、 フィールド初期化用コンストラクタを書く
  6. 6. Javaの冗長コード (3つ目)  クラスの文字列表現を返すtoStringメソッドを書くのが冗長。 /** productテーブルのEntity */ public class Product { /** 商品コード */ private Integer productCode; /** 商品名 */ private String productName; /** クラスの文字列表現 */ public String toString() { StringBuilder sb = new StringBuilder(); sb.append(“productCode:”).append(productCode); sb.append(“ productName:”).append(productName); return sb.toString(); } } フィールドの内容を 文字列にして返却する
  7. 7. Javaの冗長コード (4つ目)  各フィールドが等価かを返すequalsメソッドを書くのが冗長。 /** productテーブルのEntity */ public class Product { /** 商品コード */ private Integer productCode; /** 商品名 */ private String productName; /** 等価かを返す */ public boolean equals(Object o) { if (!(o instanceof Product)) { return false; } Product p = (Product)o; if ((this.productCode != null && p.productCode == null) || (this.productCode == null && p.productCode != null) || ・・・ 以下略 同じクラスかのチェック フィールド1つずつ、 nullチェック、値チェックをする
  8. 8. Javaの冗長コード (5つ目)  各フィールドの値に応じたハッシュ値を返す hashCodeメソッドを書くのが冗長。 /** productテーブルのEntity */ public class Product { /** 商品コード */ private Integer productCode; /** 商品名 */ private String productName; /** ハッシュ価を返す */ public int hashCode() { ・・・ 以下略
  9. 9. Lombokを使った冗長コードの排除  これら冗長コードを、Lombokを使って排除する。 /** productテーブルのEntity */ public class Product { /** 商品コード */ private Integer productCode; /** 商品名 */ private String productName; }
  10. 10. Lombokを使った冗長コードの排除  getter/setter、toString、 equals、hashCodeメソッドの追加 /** productテーブルのEntity */ @Data public class Product { /** 商品コード */ private Integer productCode; /** 商品名 */ private String productName; } @Dataアノテーションを付ける
  11. 11. Lombokを使った冗長コードの排除  デフォルトコンストラクタの追加 /** productテーブルのEntity */ @Data @NoArgsConstructor public class Product { /** 商品コード */ private Integer productCode; /** 商品名 */ private String productName; } @NoArgsConstructor アノテーションを付ける
  12. 12. Lombokを使った冗長コードの排除  フィールド初期化用コンストラクタの追加 /** productテーブルのEntity */ @Data @NoArgsConstructor @AllArgsConstructor public class Product { /** 商品コード */ private Integer productCode; /** 商品名 */ private String productName; } @ AllArgsConstructor アノテーションを付ける
  13. 13. Lombokを使った冗長コードの排除  以上 /** productテーブルのEntity */ @Data @NoArgsConstructor @AllArgsConstructor public class Product { /** 商品コード */ private Integer productCode; /** 商品名 */ private String productName; }
  14. 14. Lombokを使ってBuilderを追加  Bulderを追加する。 /** productテーブルのEntity */ @Data @NoArgsConstructor @AllArgsConstructor @Builder public class Product { /** 商品コード */ private Integer productCode; /** 商品名 */ private String productName; }
  15. 15. Lombokを使ってBuilderを追加  Bulderを使う。 Product product = Product.builder() .productCode(1) .productName(“ガム”) .build(); 任意のフィールドのみを初期化した インスタンスを作成できる
  16. 16. Maven依存関係  Maven依存関係に下記を追加する。 <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.14.0</version> <scope>provided</scope> </dependency> </dependencies>
  17. 17. IntelliJのPlugin  IntelliJのPluginを追加する。 設定画面を開いて 「Plugins」を選択 キーワードに 「lombok」を入力 リストに出ない場合は 「Browse」をクリック
  18. 18. IntelliJのPlugin  IntelliJのPluginを追加する。 「Lombok Plugin」を選択 ダウンロードと インストールをする
  19. 19. IntelliJのPlugin  IntelliJのPluginを追加する。 IntelliJを 再起動して完了
  20. 20. まとめ  Lombokを使って定型的なコードをなるべく排除し、 それで浮いた時間を使って本来やるべき実装に集中しましょう。

×