一、?
1)、?在聲明對象時,把它跟在類名後面,表示這個類允許爲null
var list: ArrayList<String>? = null
2)、調用對象時,把它跟在對象後面,表示如果爲null程序就會視而不見,比如我們代碼如下
list?.size
這裏就算是list爲null,也不會拋出空指針異常,
3)、對象A?:對象B
var size = list?.size? : 0
如果size不爲空就取size的值,如果是空的話就取0,等價三元操作符
int size = list.size != 0? size : 0
二、 !!解釋
"!!"加在變量名後,如果對象爲null,那麼系統一定會報異常!