Ich möchte einen Typenkonflikt-Compilerfehler beheben, den ich aus dem folgenden Code erhalte, bei dem Typinferenz nicht das tut, was ich möchte. Ich habe eine versiegelte Klasse und einen rxjava Strom:So erhöhen Sie den Rückgabewert eines Konstruktors
sealed class Result {
data class Success(val logs: List<Log>) : Result()
data class Failure(val throwable: Throwable) : Result()
object InFlight : Result()
}
val logs: Observable<List<Log>> = getLogs()
logs.map(Result::Success)
.onErrorReturn(Result::Failure)
Typenkonflikt: geschlossen Typ ist KFunction1 < @ParameterName Throwable, Result.Failure> aber Funktion! wurde
erwartet
ich den Fehler durch explizite Angabe des Mapper Funktion Rückgabetyp beheben kann, die von dem abgeleiteten Typ Upcasting Result.Success
-Result
wie so eine Art ist:
logs.map({ logs ->
Result.Success(logs) as Result
})
Aber ich frage mich, ob diese Upcasting ist möglich mit einer Konstruktorfunktionsreferenz, so etwas wie Result::Success as Result
Perfekt, danke! – vlazzle