2
創建一個工廠JSON解串器我有一大堆的註釋界面如下:傑克遜
@MyAnnotation(DefaultImplementation.class)
interface SomeInterface {
...
}
和伴隨的實施
class DefaultImplementation implements SomeInterface {
...
}
當我ObjectMapper運行到SomeInterface
我會類型的字段像它反序列化它,就好像它是一個DefaultImplementation
。也就是說,我想在解串過程中編碼以下邏輯:
if (staticTypeToDeserialize.isAnnotationPresent(MyAnnotation.class))
deserializeAs(type.getAnnotation(MyAnnotation.class).value());
else
fallBackOnRegularDeserialization();
這不需要我用'@ MyAnnotaiton'爲每個接口創建一個mixin嗎?這是不可取的。我希望能夠輕鬆地添加使用'@ MyAnnotation'註釋的新接口。另外,這需要我修改JSON表示。這在我的設置中也是不可取的。這就是我相信我的反序列化器需要某種形式的工廠的原因(即,基於'@ MyAnnotation'註釋,即時創建反序列化器的一種方式) – aioobe