什么对Kotlin回报值意味着什么?

时间:2018-01-06 19:46:52

标签: null kotlin

我尝试使用类型为Task的{​​{1}} result。这对于我应该如何处理可空性意味着什么?它可能是空的吗?

我无法在Null Safetykotlinlang.org部分找到此类声明。

1 个答案:

答案 0 :(得分:7)

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

  

<强> Notation for Platform Types

     

[...]

     

T!表示“T or T?”[...]

您可以将平台类型称为“未知可空性的类型”。同样重要的是要知道你不能将感叹号类型用于你自己的类型,它不是Kotlin语法的一部分,它只是一个符号。