什么! 意味着一个Kotlin返回值?

我正在尝试使用具有Location!types的Task result Location! 。 这是什么意思,我怎么处理可空性? 它可能是空的或不?

我在kotlinlang.org的Null安全部分找不到这种声明。

一个types与! 被称为平台types ,这是一种来自Java的types,因此最可能是null 。 这是Kotlin编译器在调用Java时默认推断的内容(对于最基本的情况,可以注释 Java方法来解决这个问题)。 您应该将平台types处理为可空types,除非您确实知道特定的API永远不会返回null 。 编译器允许将平台types分配给可为空和非空types的variables。

平台types的表示法

[…]

T! 意思是“ T or T? ”[…]

您可以将平台types称为“ 未知可空性的types”。 另外重要的是要知道,你不能使用感叹号标记types为你自己的types,它不是Kotlin语法的一部分,它只是一个符号。