我讀了很多關於使用TypeAdapter
和JsonSerializer/Deserializer
來處理抽象類,我的問題是在嵌套抽象類的情況下。 我們說這個類:如何使用嵌套抽象類來處理GSON?
abstract class A {
String content;
}
abstract class G {
String otherContent;
}
class B extends A {
G g;
}
class C extends A {
String someThing;
}
class H extends G {
Integer num;
}
我已經編寫了一個JsonSerializer/Deserializer
類每個抽象類A
和G
。 我知道我可以使用鏈接:gsonbuilder.registerTypeAdapter(A_Adapter).registerTypeAdapter(G_Adapter)
,但我需要使用更類似於TypeAdapterFactory
的東西來識別使用的女巫適配器(以指定對應於我使用java annotaion/reflection
的抽象類的適配器類)。 我也看到了TypeAdapter
類,但由於JsonSerializer/Deserializer
中存在context
元素的缺失而實現起來太複雜。
任何想法如何做到這一點?
如何讓一個類組合所有字段,並讓Gson在缺失時將它們設置爲null(或者最好在Java 8中爲可選)?至少反序列化....否則,我認爲你應該顯示你的JSON –
感謝您的迴應,我不能這樣做,實際上我的課程系統更復雜,我需要繼承/抽象功能 –
@RCMSAS你想爲'A'類的每個子類型('A' +'B' +'C')使用相同的序列化器和解序器?另一個用於'G' +'H'的TypeAdapter? – varren