我的密封课
sealed class TranslationResponse
data class Success(val code: Int, val text: List<String>) : TranslationResponse()
data class Error(val code: Int, val message: String) : TranslationResponse()
改造2请求
@POST("/.....")
fun query(
@Query("text") text: String,
@Query("lang") lang: String,
@Query("key") key: String = ""
): Observable<TranslationResponse>
当我调用以下代码时
response.onErrorReturn { Error(code = 0, message = it.message ?: "error") }
.subscribe {
when (it) {
is Success -> onTranslation(it.text[0])
is Error -> Log.d(this@CustomTextWatcher.javaClass.name, "translation error: ${it.code} ${it.message}")
}
}
我遇到了一个例外
引起:java.lang.RuntimeException:无法调用没有参数的私有 ....TranslationResponse()
PS如果替换Observable<TranslationResponse>
为Observable<Success>
我的代码有效