オブジェクト指向プログラミングでは、基本的にクラス変数は隠蔽(private)し、アクセス用のメソッドを経由して参照するのが一般的かと思います。
以下のようにアクセサ関数をいちいち定義するのってちょっと面倒ではないでしょうか?
public class Sample {
private int hoge;
private String fuga;
public void setHoge(int param) {
hoge = param;
}
public int getHoge() {
return hoge;
}
public void setFuga(String param) {
fuga = param;
}
public String getFuga() {
return fuga;
}
}
これらを自動生成する方法を紹介します。
Lombok
アクセサ関数を自動生成するには、「Lombok」が便利です。
特定のアノテーションを付けることによって、ゲッター/セッターメソッドを自動定義します。
実装例
@Data
public class Sample {
private int hoge;
private String fuga;
}
だいぶスッキリしますね。
『 @Data 』アノテーションを付与することにより、ゲッター/セッターメソッドが自動定義されます。
形式
set/get + 変数名の先頭を大文字にしたメソッド名となります。
ただし、変数がboolean型の場合は少し異なりますので注意してください。
例
@Data
public class Sample {
private int hoge;
private String fuga;
private boolean flag;
// ↓自動生成されるメソッド↓
public void setHoge(int hoge) {
this.hoge = hoge;
}
public int getHoge(void) {
return hoge;
}
public void setFuga(String fuga) {
this.fuga = fuga;
}
public int getFuga(void) {
return fuga;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
public boolean isFlag(void) {
return flag;
}
// ↑自動生成されるメソッド↑
}
導入方法
プロジェクトの設定ファイルに、Lombokの参照を追加します。
Maven
pom.xml
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>X.X.X</version>
<scope>provided</scope>
</dependency>
gradle
build.gradle
dependencies {
compileOnly 'org.projectlombok:lombok:X.X.X'
}
『 X.X.X 』には、lombokライブラリのバージョンを記述してください。