2016-11-21 6 views
0

У меня возникла проблема с Retrofit, которая использует статический тип класса, а не тип времени выполнения для сериализации его RequestBody.Retrofit 2.1.0 + Gson. Serialize @Body, который является подклассом

Скажем, у меня есть два класса:

class A{ 
    String a; 
} 

class B extends A{ 
    String b; 
} 

Теперь я хочу, чтобы сделать запрос:

@Post("/someUrl) 
Observable<Void> someRequest(@Body A body); 

Я хочу передать экземпляры A или B в someRequest, и сериализовать их должным образом на основе тип класса.

Я попытался использовать RuntimeTypeAdapterFactory, он работал хорошо, но он дал мне дополнительное поле после сериализации (поле типа). Мои классы A, B будут использоваться только для сериализации.

ответ

0

Рассмотрим только перегружать сам метод:

@Post("/someUrl) 
Observable<Void> someRequest(@Body A body); 
@Post("/someUrl) 
Observable<Void> someRequest(@Body B body); 
+0

Это хороший ответ, но я должен сказать, что я хочу иметь только один метод для запроса. – PaleNisko

Смежные вопросы