Java Lombok | final変数の宣言 - val変数
val変数
valという型で変数を定義すると、代入した値から適切な型を推論し、finalとして宣言される。
package com.devkuma.tutorial.lombok;
import lombok.val;
import java.util.Arrays;
import java.util.HashMap;
public class ValTutorial {
public static void main(String... args) {
val list = Arrays.asList("devkuma", "araikuma", "kimkc");
list.forEach(System.out::println);
val map = new HashMap<String, Long>();
map.put("hoge", 1L);
map = null;
}
}
上のソースコードでmapをvalとして宣言した部分についても、通常の型が正しく読み込まれていることが分かる。

valで定義された変数にはfinalが宣言されるため、再代入はできない。

map = null;というコードを書いて実行すると、次のようなエラーが発生する。
D:\dev\\java-lombok-tutorial\src\main\java\com\devkuma\tutorial\lombok\ValTutorial.java:17: error: cannot assign a value to final variable map
map = null;
^