#GradleでLombokを導入、実行しようとしたらエラーが発生した
Annotationを書くことでJavaのBoilerplateを省略してくれるLombokを試してみようとしたところ、コンパイルエラーになったので、その解決法です。
##ソースコード
java
import lombok.*;
public class LombokDemo {
public static void main(String[] args) {
Human aoi = new Human("aoi", 22);
Human ryo = new Human();
ryo.setName("ryo");
ryo.setAge(21);
System.out.println(aoi);
System.out.println(ryo);
}
}
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
class Human {
private String name;
private int age;
}
build.gradle(dependencies)
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.20'
}
##実行結果(Before)
terminal
C:\project_pass\src\main\java\LombokDemo.java:3: エラー: クラス Humanのコンストラクタ Humanは指定された型に適用できません。
Human aoi = new Human("aoi", 22);
^
期待値: 引数がありません
検出値: java.lang.String,int
理由: 実引数リストと仮引数リストの長さが異なります
##原因
build.gradleにはLombokに関する依存をもう一つ書かなければならなかった。
build.gradle(dependencies)
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20'
}
##実行結果(After)
terminal
> Task :LombokDemo.main()
Human(name=aoi, age=22)
Human(name=ryo, age=21)
##感想
公式サイトはしっかり見ましょう。