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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takafumi Yoshida
December 13, 2014
Technology
270
0
Share
使ってみようLombok
合同勉強会 in 大都会岡山 -2014 Winter-
Takafumi Yoshida
December 13, 2014
More Decks by Takafumi Yoshida
See All by Takafumi Yoshida
ECSとSQSでスケーラブルなバッチを作った
zephiransas
2
1.4k
DynamoDB Step Zero to One
zephiransas
0
740
ECSとALBで始めるblue/greenデプロイメント
zephiransas
2
340
DynamoDB関連のアップデート紹介 #reinvent2018
zephiransas
0
820
CloudGarageでGitBucketサーバをたててみた
zephiransas
0
540
プログラマが知っておくといいかもしれないCSSのハナシ
zephiransas
1
1.1k
ラクして学ぶ英語(LT版)
zephiransas
0
210
あなたとCrystal、いますぐダウンロード
zephiransas
1
1.8k
Modern Web Development with ninjaframework
zephiransas
0
3.2k
Other Decks in Technology
See All in Technology
コミュニティ・勉強会を作るのは目的じゃない
ohmori_yusuke
0
260
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
3
440
AIでAIをテストする - 音声AIエージェントの品質保証戦略
morix1500
1
140
EMから幅を広げるために最近挑戦していること / Recent challenges I'm undertaking to expand my horizons beyond EM
hiro_torii
1
120
弁護士ドットコム株式会社 エンジニア職向け 会社紹介資料
bengo4com
1
180
AIはハッカーを減らすのか、増やすのか?──現役ホワイトハッカーから見るAI時代のリアル【MEGU-Meet】
cscengineer
PRO
0
200
AgentCore×VPCでの設計パターンn選と勘所
har1101
3
310
Chasing Real-Time Observability for CRuby
whitegreen
0
260
データ定義の混乱と戦う 〜 管理会計と財務会計 〜
wonohe
0
140
Cortex Codeのコスト見積ヒントご紹介
yokatsuki
0
110
ニックトレイン2026[名古屋]
furutaatsuya
0
110
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.4k
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
190
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
Building Applications with DynamoDB
mza
96
7k
sira's awesome portfolio website redesign presentation
elsirapls
0
220
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
120
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Heart Work Chapter 1 - Part 1
lfama
PRO
6
35k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.9k
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ユーザ会