Kotlin日常編程(一)——拒絕使用"!!" End

在我們才從Java轉Kotlin的時候經常會寫類似下面這樣的代碼

var str:String?=null
fun init(){
    str="wusy"
    var list=ArrayList<String>()
    list.add(str)
}

這個時候,編譯會無法通過,系統會給你改成list.add(str!!)以通過編譯。會出現這樣的原因是Kotlin有着自己的判空機制。"str!!"表示str一定不爲空。但是我們的在定義str的時候可以看到var str:String?=null,str是可以爲null的,如果我們沒有str="wusy"去賦值。那麼程序跑起來一定會崩潰NullPointException。

在日常開發中,這樣的場景很常見,例如:我們獲取服務器的數據,正常情況下,程序一切OK,但是,哪天服務器大姨媽,返回一個其中的某一個數據爲null。整個系統就崩潰了,用戶體驗極差。咱們怎麼去解決這個問題了。筆者這裏提供一個解決方法。

var str:String?=null
fun init(){
    str="wusy"
    var list=ArrayList<String>()
    list.add(str?:"default")
}

我們一定要拒絕"!!",用xx?.xx?:""代替。這樣寫代表的是如果引用的xx存在null,則使用默認的值。這樣即便服務器大姨媽了,我們也有default去應對,不至於程序奔潰,讓用戶體驗賊差。

End

筆者的Github Blog,希望各位大大提意見,點個star,謝謝
傳送門:WusyBlog

求互粉互贊,互贊所有文章可以私聊我。哈哈,希望我們的原創文章能讓更多朋友看到,一起變強。

筆者新開通了微信公衆號——飲水思源|wusy 計劃持續運營,每日爲您分享Android乾貨、原創文章。微信掃描下方的二維碼關注我,開發學習路上不迷路。謝謝各位


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章