我正在尝试使用具有Location!
类型的Task
result
。这对我应该如何处理可空性意味着什么?它是否可以为空?
我在 kotlinlang.org 的"空安全"部分找不到这种声明。
用 !
标记的类型称为平台类型,这是一种来自 Java 的类型,因此很可能是null
的。这是 Kotlin 编译器在调用 Java 时默认推断的内容(对于最基本的情况,可以注释 Java 方法来解决这个问题(。您应该将平台类型处理为可为空的类型,除非您肯定知道特定的 API 永远不会返回 null
。编译器允许将平台类型分配给可为 null 和非 null 类型的变量。
平台类型的表示法
[...]
T!
的意思是"T or T?
" [...]
您可以将平台类型称为">未知可空性类型"。同样重要的是要知道,您不能将感叹号类型用于您自己的类型,它不是 Kotlin 语法的一部分,它只是一个表示法。