JacksonでLombokを使ったBeanにマッピングできない
同じ轍を踏まないようにメモ。
事象
JSONファイルから設定を読み込むことをしたく、Jacksonを使い、アクセッサーメソッドの記述を省力化しようとLombokを使った。そのとき下記のように記載するとアクセッサーメソッドがスネークケースになって(実際スネークケースになる設定というわけではなく、頭文字を大文字にして繋げる仕様で、"_"だからそれに対応できなかっただけのような気がする気がする...)、アンマーシャルすることができないエラーが発生する。
import lombok.Getter; import lombok.Setter; public class Bean { @Getter @Setter private Parent1 _parent1; public class Parent1 { @Getter @Setter private String _child1; @Getter @Setter private String _child2; @Getter @Setter private String _child3; } }
対策
属性の接頭辞には、"_"を使用しないこと。
import lombok.Getter; import lombok.Setter; public class Bean { @Getter @Setter private Parent1 parent1; public class Parent1 { @Getter @Setter private String child1; @Getter @Setter private String child2; @Getter @Setter private String child3; } }
バージョン
pom.xmlの内容は下記。
...以上、省略.... <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.6</version> </dependency> ...以下、省略....