[JAVA] NoSuchMethodException mit lombok ohne Standardkonstruktor

Eine Aufzeichnung von gewöhnlichen Fehlern.

Als ich den folgenden Code mit lombok ausführte, wurde ein Laufzeitfehler angezeigt.

@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

Die Ursache war, dass die Instanziierung durch Reflexion fehlschlug, weil es keinen Standardkonstruktor ohne Argumente gab.

Also habe ich lombok angegeben, um auch einen Konstruktor ohne Argumente zu generieren.

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

Recommended Posts

NoSuchMethodException mit lombok ohne Standardkonstruktor
Geben Sie den Standardwert mit @Builder of Lombok an
Lombok mit VS Code
[Java] So lassen Sie die Federkonstruktorinjektion mit Lombok weg
Lombok arbeitet nicht mit Gradle5
Verspotten Sie den Konstruktor mit PowerMock
Reduzieren Sie redundanten Code mit Lombok