考虑具有多个实现的接口
Public interface A {}
@DynamoDBDocument
Public class C1 implements A {
variables…
}
@DynamoDBDocument
Public class C2 implements A {
variables…
}
@DynamoDBTable
Public class TopLevelClass {
A obj; //It can be any implementation C1, C2 ….
//Getter and setter of A
}
在dynamoDB中保存C1类型的对象可以正常工作,但我们无法将其反序列化。 Jackson通过向json添加一个@class属性来帮助它找出要实例化的实现,但是DynamoDBMapper不知道并且最终试图实例化一个A的对象,它明显失败,因为它只是一个接口。
我们有办法实现这个目标吗?我们不想使用marshallers,因为它只是将整个对象反序列化为字符串并且违背了DynamoDBDocument类型的目的。