从Kotlin KEEP:
这些限制的基本原理是,将来的Kotlin版本可能会扩展和/或更改返回Result类型的函数的语义,并且在用于Result类型的值时,空安全运算符可能会更改其语义。为了避免在Kotin的将来发行版中破坏现有代码并为这些更改敞开大门,相应的用法现在会产生错误。对于此规则的例外情况是,标准库中的仔细检查的声明是Result类型API本身的一部分。
注意:如果您只想尝试使用该Result
类型,则可以通过提供Kotlin编译器参数来绕过此限制-Xallow-result-return-type
。
在Java或Android项目上使用Gradle时:
在Kotlin编译任务上定义编译器参数。它适用于生产代码和测试。
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions {
freeCompilerArgs = freeCompilerArgs + "-Xallow-result-return-type"
}
}
在多平台项目上使用Gradle时:
为每个目标编译定义编译器参数。它适用于生产代码和测试。
kotlin {
targets.all {
compilations.all {
kotlinOptions {
freeCompilerArgs = freeCompilerArgs + "-Xallow-result-return-type"
}
}
}
}
kotlin.Result
来的?我在标准库中找不到该类。