变量后的Android问号

时间:2018-11-23 21:31:08

标签: kotlin

我有时会看到诸如somevariable.value?.add()之类的语句,问号有什么作用? (对不起,在发布时,我还不知道这是Kotlin,我以为是Java)

1 个答案:

答案 0 :(得分:2)

Kotlin将null视为空指针异常的来源。

在您的代码段中,somevariable.value是“可空类型”,例如MutableList?Axolotl?MutableList不能是null,但是MutableList?可能是null

通常,要在对象上调用函数,请使用.

一个用于在变量,参数或属性上调用函数的选项 可为null的类型是使用?.。然后,将发生以下两种情况之一:

  • 如果值为null,则会忽略您的函数调用,而null是 结果
  • 如果该值不是null,则按正常方式进行函数调用

所以,就您而言:

  • 如果somevariable.valuenull,则跳过add()通话

  • 如果somevariable.value不是null,则无论add()是什么,都将进行somevariable.value调用