我有一个问题与Retrofit,它使用类的静态类型,而不是运行时类型序列化它的RequestBody。
假设我有两个类:
class A{
String a;
}
class B extends A{
String b;
}
现在我想提一个要求:
@Post("/someUrl)
Observable<Void> someRequest(@Body A body);
我想将A或B示例传递给someRequest,并根据类类型正确地序列化它们。
我试着使用RuntimeTypeAdapterFactory,它运行得很好,但是它在序列化后给了我额外的字段(类型字段)。我的A,B类将只用于序列化。
2条答案
按热度按时间iih3973s1#
考虑只重载方法本身:
kuuvgm7e2#
我知道,这个问题是老问题了,但真正正常的解决方案是在创建
Retrofit
示例时注册自定义类型适配器。例如here。它还可以与Kotlin密封类一起使用:
而在你的改造创造者: