报错信息:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of 'xxx' (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
原因:
com.fasterxml.jackson.databind.ObjectMapper.readValue(String content, Class<T> valueType)方法,传入的class对象没有无参构造器,具体原因是在该对象上同时使用了@Data
和@AllArgsConstructor
注解,@AllArgsConstructor
阻止了@Data
生成(无参)构造器,从而该对象只有一个全参构造器,没有无参构造器,导致反序列化失败。应当注意显式的构造器和@NoArgsConstructor
, @RequiredArgsConstructor
, @AllArgsConstructor
都会抑制@Data
生成构造器。
解决方法:
显式添加无参构造器或使用@NoArgsConstructor