ローカル変数の型宣言を省略
lombokは、導入するとアノテーションでいくつかのコードや宣言を省略できる強力なライブラリです。Javaはローカル変数もきちんと型宣言しますが、これも省略が可能になります。
ローカル変数はvalで略記可能
例えばデータベースに対して検索条件を指定し、検索した結果を返すServiceクラスと、検索結果を一部加工してから画面へ出力するActionクラス、この2つを作るとします。
また、Serviceクラスが返す検索結果は、List<Map<String,Object>>
で返されるとします。
このとき、通常のActionクラスは次のようになるでしょう。
※Actionクラスから画面へ値を渡す処理、ならびに加工処理は省略しています。
BeforeAction.java
public class BeforeAction {
public String start() throws Exception {
// Serviceクラスの呼び出し
List<Map<String,Object>> resultList = service.execute("param");
// resultListに何らかの加工処理.....
// 画面へ渡す処理....
// 処理終了
return SUCCESS;
}
}
resultListの宣言部にも、Serviceクラスのexecuteメソッドの実行結果と同じ宣言にします。ここの宣言部はIDEなどで自動補完することもできますが、lombokを使うことで次のように省略できます。
AfterAction.java
import lombok.val;
public class BeforeAction {
public String start() throws Exception {
// Serviceクラスの呼び出し
val resultList = service.execute("param");
// resultListに何らかの加工処理.....
// 画面へ渡す処理....
// 処理終了
return SUCCESS;
}
}
このように、他クラスの実行結果を受け取るローカル変数に対し、型宣言をコードから省略できました。Scalaっぽいですね。