Jestem w trakcie pisania kodu, aby uzyskać dostęp do mojej usługi Webservice z mojego klienta Android. Na minutę używam modernizację wrócić typ obserwowalne dla różnych calls.At moment mam 4 z nich (pokazane poniżej)Modernizacja! zwracając ogólny typ obserwowalny
@FormUrlEncoded
@POST("/app/{pathto}")
Observable<List<EntryItem>> getNewsAndComments(@Path("pathto") String pathto, @FieldMap Map<String, String> fieldnames);
/**
* adding a comment. returns observable
* with message entity type
*
* @param pathto
* @param fieldnames
* @return
*/
@FormUrlEncoded
@POST("/app/{pathto}")
Observable<message> postComment(@Path("pathto") String pathto, @FieldMap Map<String, String> fieldnames);
@FormUrlEncoded
@POST("/{pathto}")
Call<message> regDevice(@Path("pathto") String pathto ,@FieldMap Map<String, String> fieldnames);
/**
* return a Map of canteen menu items!
*
* @param path
* @param fielditems
* @return
*/
@FormUrlEncoded
@POST("/app/{pathto}")
Observable<Map<String, ArrayList<CantItem>>> getCanteenItems(@Path("path") String path, @FieldMap Map<String,String> fielditems);
Używam również rodzajowe fabryki RestService stworzyć ogólną usługę modernizacji. Ukradłem to z bloga, który czytałem :) .
public static <T> T getRetroFitService(final Class<T> clazz, final String endpoint)
{
final Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.baseUrl(endpoint)
.build();
T service = retrofit.create(clazz);
return service;
}
W moim interfejsu gdzie Powrót zauważalny etc dużo połączeń metodą wyglądają tak samo, więc próbowałem zmieniając to do następnego generycznego połączenia
Observable<List<T>>
Niestety, modernizacja nie wydaje polubić to. Zastanawiam się, czy jest jakiś sposób obejścia tego problemu, dzięki czemu mogę wywoływać interfejsy jeszcze bardziej ogólne, na przykład przekazywanie mojego TypeAdapter do RestServiceFactory? Ponadto, jestem stosunkowo nowy w modernizacji i rx-androidie, więc wszelkie rady są mile widziane. Dzięki!