はじめに
エンジニアになってから振り返ると、DTOやBeanにprivateのメンバを宣言して、
Eclipseの機能を使ってアクセサメソッド(setter/getter)を自動生成するっていう作業、
どんだけやってきたんだよw書きたくないよwと思う。
エンジニアなら楽しましょう
はいっ、lombok〜♪(ドラえもん的な)
Project Lombok
lombokは、フィールドを宣言してアノテーションを付与するだけで、
setter/getterがあたかも存在しているかのような振る舞いをします。
内部の挙動は知りませんが、コンパイル時にsetter/getterが生成されてるのかな。
HogeDto.java
class HogeDto {
@setter @getter
private Moge moge;
}
Foo.java
class Foo {
public static void main(String args[]){
HogeDto hoge = new HogeDto();
Moge moge = new Moge();
// セットできる!
hoge.setMoge(moge);
// ゲットできる!
hoge.getMoge();
}
}
え?アクセサメソッドで固有の処理を走らせたいんだけど?
HogeDto.java
class HogeDto {
@setter
private Moge moge;
// どうぞ、固有の処理を書いてください
public Moge getMoge() {
return sanitaize(moge);
}
}
おわりに
今更感がありますが、知らな人がいたら是非活用するとよいかと。