У меня есть нечто похожее на приведенное ниже, поскольку структура моих классов
class RawType {
private String name;
... //getter and setter
}
class RawTypeSubClass extends RawType {
private String title;
... //getter and setter
}
class A {
List<? extends RawType> fields;
public A(List <?extends RawType> fields) {
this.fields = fields
}
... //getter and setter
}
.
.
.
List<RawTypeSubClass> rawTypeSubClassFields = new ArryaList<>();
A objectA = new A(rawTypeSubClassFields );
Теперь, когда я пытаюсь вызвать
String json = new Gson().toJson(objectA);
, сгенерированный json не имеет полей из RawTypeSubClass. т. е. выходные данные не имеют поля "title".
- Нет ошибок компиляции / выполнения
- Если я отлаживаю, я вижу, что objectA имеет список полей типа RawTypeSubClass ия могу видеть значение для "заголовка" тоже.
Пока я попробовал обходной путь, как показано ниже
class B {List fields;
public A (List fields) {this.fields = fields} ... //геттер и сеттер} ...
List<RawTypeSubClass> rawTypeSubClassFields = new ArryaList<>();
B objectB = new B(rawTypeSubClassFields );
Но это не изящное решение.