Документация для `SimpleModule.addDeserializer () дает подпись для этого метода следующим образом:
public <T> SimpleModule addDeserializer(Class<T> type, JsonDeserializer<? extends T> deser)
, где <T>
- это тип возвращаемого значения JsonDeserializer.deserialize()
(нормально , <? extends T>
это тот тип…).
Таким образом, в вашем случае вы должны иметь возможность преобразовать экземпляр NewPojo
в ссылку OldPojo
:
NewPojo o = new NewPojo();
OldPojo r = (OldPojo) o;
Если это работает без ClassCastException
, ваш подход может быть успешным…
Вы сказали, что не можете изменить файлы JSON - но нужно ли вам также сохранять класс OldPojo
? Почему
…
addDeserializer( **NewPojo.class**, new JsonDeserializer<NewPojo>() )
{
…
у вас не работает?