为何不能将“kotlin.Result”用作返回类型?
Result 是 Kotlin 中的一个可序列化类。它的函数定义如下 −
class Result<out T> : Serializable
此类有两个属性 − “isFailure” 和 “isSuccess”。
根据文档说明,Result<T> 不能用作 Kotlin 函数的直接返回类型。但是,在本文中,我们将演示如何在 Kotlin 程序中使用这个 Result。
// ERROR: 'kotlin.Result' cannot be used as a return type fun findUserByName(name: String): Result<User> fun foo(): Result<List<Int>> // ERROR fun foo(): Result<Int>? // ERROR var foo: Result<Int> // ERROR
示例 – Kotlin.Result
sealed class myInterFace<out Success, out Failure>
data class Success<out Success>(val value: Success) : myInterFace<Success, Nothing>()
data class Failure<out Failure>(val reason: Failure) : myInterFace<Nothing, Failure>()
fun myMethod(string : String) : myInterFace<String, Exception> {
return if (string.isEmpty()) {
Failure(Exception("Error in the process"))
} else {
Success(string)
}
}
fun main(args : Array<String>) {
when(val result = myMethod("")) {
is Success -> println(result.value)
is Failure -> println(result.reason)
}
}输出
执行后,将产生以下输出 −
java.lang.Exception: Error in the process
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
JavaScript
PHP