[JAVA] NoSuchMethodException avec lombok sans constructeur par défaut

Un record d'erreurs ordinaires.

Lorsque j'ai exécuté le code suivant à l'aide de lombok, j'ai eu une erreur d'exécution.

@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

La cause était que l'instanciation par réflexion échouait car il n'y avait pas de constructeur par défaut sans arguments.

J'ai donc spécifié lombok pour générer également un constructeur sans argument.

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
  ..

Recommended Posts

NoSuchMethodException avec lombok sans constructeur par défaut
Spécifiez la valeur par défaut avec @Builder of Lombok
Lombok avec VS Code
[Java] Comment omettre l'injection de constructeur de ressort avec Lombok
Lombok ne fonctionne pas avec Gradle5
Mock le constructeur avec PowerMock
Réduisez le code redondant avec Lombok