Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
使ってみようLombok
Search
Takafumi Yoshida
December 13, 2014
Technology
0
260
使ってみようLombok
合同勉強会 in 大都会岡山 -2014 Winter-
Takafumi Yoshida
December 13, 2014
Tweet
Share
More Decks by Takafumi Yoshida
See All by Takafumi Yoshida
ECSとSQSでスケーラブルなバッチを作った
zephiransas
2
1.3k
DynamoDB Step Zero to One
zephiransas
0
680
ECSとALBで始めるblue/greenデプロイメント
zephiransas
2
320
DynamoDB関連のアップデート紹介 #reinvent2018
zephiransas
0
780
CloudGarageでGitBucketサーバをたててみた
zephiransas
0
520
プログラマが知っておくといいかもしれないCSSのハナシ
zephiransas
1
1.1k
ラクして学ぶ英語(LT版)
zephiransas
0
200
あなたとCrystal、いますぐダウンロード
zephiransas
1
1.7k
Modern Web Development with ninjaframework
zephiransas
0
3.1k
Other Decks in Technology
See All in Technology
エンジニアが主導できる組織づくり ー 製品と事業を進化させる体制へのシフト
ueokande
1
100
IoT x エッジAI - リアルタイ ムAI活用のPoCを今すぐ始め る方法 -
niizawat
0
120
テストを軸にした生き残り術
kworkdev
PRO
0
220
エンジニアリングマネージャーの成長の道筋とキャリア / Developers Summit 2025 KANSAI
daiksy
3
1.1k
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
210
バイブスに「型」を!Kent Beckに学ぶ、AI時代のテスト駆動開発
amixedcolor
2
590
人工衛星のファームウェアをRustで書く理由
koba789
15
8.3k
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
440
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
280
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
130
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
280
新規プロダクトでプロトタイプから正式リリースまでNext.jsで開発したリアル
kawanoriku0
1
220
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
339
57k
It's Worth the Effort
3n
187
28k
Agile that works and the tools we love
rasmusluckow
330
21k
Bash Introduction
62gerente
615
210k
Writing Fast Ruby
sferik
628
62k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Documentation Writing (for coders)
carmenintech
74
5k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Transcript
使ってみようLombok 吉田貴文(@zephiransas)/岡山Javaユーザ会
Lombokとは? • Javaでよくあるコードを自動生成するライブラリ • コンパイル時にクラスを書き換える • アノテーションで指定
Lombokでできること • アクセサの生成 • equals,toString,hashCodeの生成 • コンストラクタの生成 • Nullチェック •
型推論
Lombokの仕組み IDE Java ファイル Compiler Class ファイル Lombok Lombok 自動生成したとみなす
プラグイン Classファイルを 書き換える
IDEへインストール • Eclipse • lombok.jarをダブルクリック • IntelliJ IDEA • プラグインをインストール
• NetBeans
Eclipse • lombok.jarをダブルクリック
IntelliJ IDEA
IntelliJ IDEA
NetBeans • プロジェクトのプロパティから設定
Mavenの設定 <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.14.8</version> <scope>provided</scope> </dependency> </dependencies> http://www.coppermine.jp/docs/programming/2014/01/lombok.html
@Getter,@Setter
public class Student { private Long id; private String name;
private String email; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
@Setter @Getter public class Student { private Long id; private
String name; private String email; }
@ToString
public class Student { private Long id; private String name;
private String email; public String toString() { return “Student(id=” + this.id + “, name=” + this.name + “, email=” + this.email; } }
@ToString public class Student { private Long id; private String
name; private String email; }
@Data • クラスに付与 • @Setter,@Getter,@ToString • @EqualsAndHashCode • equalsメソッドとhashCodeメソッドを生成 •
一般的なJavaBeanであれば、これだけで良い
@NonNull
@Getter @Setter public class Student { public Student(String name, String
email) { if(name == null) { throw new NullPointerException("name"); } this.name = name; this.email = email; } private Long id; private String name; private String email; }
public class Student { public Student(@NonNull String name, String email)
{ this.name = name; this.email = email; } private Long id; private String name; private String email; }
val
Student student = new Student(); ͜͜ʹܕใ͕͋Δ ͜͜ʹܕใ͕͋Δɾɾɾ
val student = new Student(); ӈล͔ΒܕใΛਪ͢Δ
val lists = new ArrayList<Student>(); ɾɾɾ Student student = lists.get(0);
4UVEFOUܕ͕औಘͰ͖Δ
valは便利なようだが まだ問題も多い・・・
ただしEclipseのみ
大事なことなので もう一度
Eclipseのみ
それScalaで・・・
まとめ • よくあるコードは書かないようにしよう • アクセサはIDEの生成でよくね? • ToStringやequalsとか修正面倒 • 余計なコードがないのでカバレッジがよくなる •
valがステキ • しかしEclipseェ・・・
使ってみようLombok 吉田貴文(@zephiransas)/岡山Javaユーザ会