- ?.
//kotlin:
a?.foo()
//相當于java:
if(a!=null){
a.foo();
}
- !!.
//kotlin:
a!!.foo()
//相當于java:
if(a!=null){
a.foo();
}else{
throw new KotlinNullPointException();
}
時間寶貴的同學可以不要看下面的了(` _ `)
- 再來說下"!!"
值得一提的是捎泻,當我們直接調用一個可空變量的某方法或某成員變量時:
//(Kotlin)
a!!.foo()
//等于(Kotlin):
a!!
a.foo()
//相當于(Java):
assert a!=null;
a.foo();
//也就相當于(Java):
if(a == null){
throw new NullPointException();
}
a.foo();
進而有上面第2點結論。