我尝试使用类型为Task
的{{1}} result
。这对于我应该如何处理可空性意味着什么?它可能是空的吗?
我无法在Null Safety的kotlinlang.org部分找到此类声明。
答案 0 :(得分:7)
以!
标注的类型称为平台类型,它是来自Java 的类型,因此最有可能是null
。这是Kotlin编译器在调用Java时默认推断的内容(对于最基本的情况,Java方法可以annotated来解决这个问题)。您应该将平台类型作为 nullable 类型处理,除非您确实知道特定API永远不会返回null
。编译器允许将平台类型分配给可空和非空类型的变量。
<强> Notation for Platform Types 强>
[...]
T!
表示“T or T?
”[...]
您可以将平台类型称为“未知可空性的类型”。同样重要的是要知道你不能将感叹号类型用于你自己的类型,它不是Kotlin语法的一部分,它只是一个符号。