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
710
ECSとALBで始めるblue/greenデプロイメント
zephiransas
2
330
DynamoDB関連のアップデート紹介 #reinvent2018
zephiransas
0
800
CloudGarageでGitBucketサーバをたててみた
zephiransas
0
520
プログラマが知っておくといいかもしれないCSSのハナシ
zephiransas
1
1.1k
ラクして学ぶ英語(LT版)
zephiransas
0
200
あなたとCrystal、いますぐダウンロード
zephiransas
1
1.8k
Modern Web Development with ninjaframework
zephiransas
0
3.2k
Other Decks in Technology
See All in Technology
LayerX QA Night#1
koyaman2
0
280
日本の AI 開発と世界の潮流 / GenAI Development in Japan
hariby
2
650
戰略轉變:從建構 AI 代理人到發展可擴展的技能生態系統
appleboy
0
150
投資戦略を量産せよ 2 - マケデコセミナー(2025/12/26)
gamella
0
520
NIKKEI Tech Talk #41: セキュア・バイ・デザインからクラウド管理を考える
sekido
PRO
0
240
Bedrock AgentCore Memoryの新機能 (Episode) を試してみた / try Bedrock AgentCore Memory Episodic functionarity
hoshi7_n
2
2.1k
Kiro を用いたペアプロのススメ
taikis
4
2k
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
240
TED_modeki_共創ラボ_20251203.pdf
iotcomjpadmin
0
170
AR Guitar: Expanding Guitar Performance from a Live House to Urban Space
ekito_station
0
270
Cloud WAN MCP Serverから考える新しいネットワーク運用 / 20251228 Masaki Okuda
shift_evolve
PRO
0
130
「もしもデータ基盤開発で『強くてニューゲーム』ができたなら今の僕はどんなデータ基盤を作っただろう」
aeonpeople
0
260
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
66k
Bash Introduction
62gerente
615
210k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
0
290
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
Documentation Writing (for coders)
carmenintech
77
5.2k
New Earth Scene 8
popppiees
0
1.3k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
350
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
770
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
Building Adaptive Systems
keathley
44
2.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ユーザ会