Retrofit2とRxJava2を使用するときにカスタム例外をスローする際に問題があります。レトロフィットのAPIRetrofit2とRxJava2でカスタム例外をスローする方法
レトロフィットアピ定義
public interface BackendInterface {
@Headers({"......"})
@POST("international-services/")
Observable<BackendResponse> post(@Body BackendRequest request, @Header("sessionId") String sessionId);
}
使用
@Override
public Observable<SomeBusinessObject> getSomething(@NonNull String sessionId, @NonNull SomeOtherBusinessObject something) {
BackendRequest br = createBackendRequest(something);
return backendInterface.post(br, sessionId).map(backendResponse -> {
if (backendResponse.getResult().getCode() != 0) {
return Observable.error(new ServiceException("my custom exception"));
}
SomeBusinessObject result = mapBusinessObject(br);
return result;
});
}
問題は次の行である
return Observerable.error(new ServiceException("my custom exception"));
のAndroid Studioは、それをマークObservableがSomeBusinessObject推論変数に準拠するように、variable(y)型のインスタンスが存在しないことを示す。Rは互換性のない境界を持つ:SomeBusinessObject下限:Observable
IDEのクイックフィックスは、私のメソッドgetSomethingはObservableを返します。
カスタム例外を私の観測対象の加入者に転送する方法はわかりません。
とリターンを交換するためのソリューション。入力ミスを修正したら、質問を更新してください。 –