我尝试使用Jackson序列化/反序列化DynamoDB Record类。
我无法控制这个类,所以我尝试使用Jackson mixins。
我做了以下工作:
@JsonDeserialize( builder = RecordBuilderMixIn.class )
private abstract static class RecordMixIn
{
}
@JsonPOJOBuilder( withPrefix = "" )
private abstract class RecordBuilderMixIn
{
}
var mapper = new ObjectMapper()
.addMixIn( Record.Builder.class, RecordBuilderMixIn.class )
.addMixIn( Record.class, RecordMixIn.class );
但是当我执行mapper.readValue(json, Record.class);
时,我得到了以下错误:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Builder class `com.surecloud.jackson.RecordObjectMapper$RecordBuilderMixIn` does not have build method (name: 'build')
有什么解决办法吗?
谢啦,谢啦
1条答案
按热度按时间0pizxfdo1#
在RecordBuilderMixIn中添加一个构造函数,对象Map器用于填充对象的反射需要该构造函数。
此外,停止在方法声明后添加新的curybracket行,这只会导致问题,因为没有现代编辑器使用这种风格。