2
1

More than 3 years have passed since last update.

lombokでデフォルトコンストラクタが無くてNoSuchMethodException

Posted at

凡ミスの記録。

lombokを使用して以下のコードを実行したところ、実行時エラーになった。

@Data
@AllArgsConstructor
public class Person {
  ...
Caused by: java.lang.InstantiationException: kagamihoge.springbatchsample.Person
    at java.base/java.lang.Class.newInstance(Class.java:571) ~[na:na]
    at org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper.getBean(BeanWrapperFieldSetMapper.java:248) ~[spring-batch-infrastructure-4.2.1.RELEASE.jar:4.2.1.RELEASE]
    ... 53 common frames omitted
Caused by: java.lang.NoSuchMethodException: kagamihoge.springbatchsample.Person.<init>()
    at java.base/java.lang.Class.getConstructor0(Class.java:3350) ~[na:na]
    at java.base/java.lang.Class.newInstance(Class.java:556) ~[na:na]
    ... 54 common frames omitted

原因は、引数無しのデフォルトコンストラクタが無いのでリフレクションによるインスタンス生成に失敗していた。

というわけで、lombokで引数無しコンストラクタも生成するように指定した。

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
  ..
2
1
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
2
1