LoginSignup
11
10

More than 5 years have passed since last update.

素のgetter/setterなんて書きたくないんだよ

Last updated at Posted at 2015-12-09

はじめに

エンジニアになってから振り返ると、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);
    }

}

おわりに

今更感がありますが、知らな人がいたら是非活用するとよいかと。

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10