楽できるとこは楽するべき!!!

Lombokのすすめ

Java女子部

@maaya8585

Who am I ?

@maaya8585

Java屋さんの端くれ

クラウド系アーキテクト見習い

最近のお仕事は

Azure と AWS と Spring Boot

仮装首謀者。

Lombok

って素晴らしいよ!!!

今日話したいことはこれだけ。

まだLombokを知らない

そこのあなた!!

損してますよ。

Lombok とは

「おまじない」系の処理コード

をシンプルに

書けるようにしてくれる

強力ライブラリ

Lombok 使い方

dependencies {
    compileOnly 'org.projectlombok:lombok:1.16.10'
}

for Gradle

<dependencies>
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<version>1.16.10</version>
		<scope>provided</scope>
	</dependency>
</dependencies>

for Maven

Lombok 使い方

dependencies {
    compileOnly 'org.projectlombok:lombok:1.16.10'
}

for Gradle

<dependencies>
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<version>1.16.10</version>
		<scope>provided</scope>
	</dependency>
</dependencies>

for Maven

これだけ!!!!

IDEで使う場合はプラグイン入れてあげてね。

 lombok.Data

import lombok.Data;

@Data
public class JavajoMember {
    private String nickname;
    private int age;
}
public void addMember (String memberName, int memberAge) {
    JavajoMember member = new JavajoMember();
    member.setNickname( memberName );
    member.setAge( memberAge );

    //.... DBに登録とか
}

 lombok.Data

import lombok.Data;

@Data
public class JavajoMember {
    private String nickname;
    private int age;
}
public void addMember (String memberName, int memberAge) {
    JavajoMember member = new JavajoMember();
    member.setNickname( memberName );
    member.setAge( memberAge );

    //.... DBに登録とか
}

getter / setter ?

書かなくていいんです!!!

 ログ系

 @Slf4j
 public class JavajoEvent {
     public void errorMessage (String eventName) {
         log.error("このイベントはキャンセルになりました : " + evenName);
     }
} 
public class JavajoEvent {
    private static final org.slf4j.Logger log =
                  org.slf4j.LoggerFactory.getLogger(JavajoEvent.class);

    public void errorMessage (String eventName) {
         log.error("このイベントはキャンセルになりました : " + evenName);
     }
} 

@XSlf4j

@CommonsLog

@JBossLog

@Log

 @Log4j

@Log4j2

◆ コンストラクタ系

@AllArgsConstructor(access = AccessLevel.PROTECTED)
@NoArgsConstructor
public class Halloween {
      @NonNull private int year;
      @NonNull private String groupName;
}

◆ コンストラクタ系

public class Helloween {
      private int year;
      private String groupName;

    protected Helloween() {  }

     protected Helloween(int year, String groupName) {
          if (groupName == null) {
                throw new NullPointerException("groupName");
          }
             this.year = year;
             this.groupName = groupName;
     }
}

◆ バリデーション系

public class Helloween {
      private int year;
      @NonNull private String groupName;

    protected Helloween() {  }

     protected Helloween(int year, String groupName) {
          if (groupName == null) {
                throw new NullPointerException("groupName");
          }
             this.year = year;
             this.groupName = groupName;
     }
}

◆ バリデーション系

import lombok.NonNull;

public class JavajoMember {
    private String name;
  
    public JavajoMember(@NonNull Person person) { 
         this.name = person.getName();
    }
}

◆ バリデーション系

public class JavajoMember {
    private String name;
  
    public JavajoMember(@NonNull Person person) { 
        if (person == null) {
            throw new NullPointerException("person");
         }
         this.name = person.getName();
    }
}

これらのシステムが!

なんと!

無料で使えます!

さぁみんな

使って楽しよう!!!

fin.

@maaya8585

try-lombok

By maaya ishida

try-lombok

  • 1,739