Kotlin 避免 !! ?!

用過Kotlin語言的大家都知道,對于 Null 的強制性檢查是 Kotlin 的特點之一,可以避免很多在 Java 中隱藏的 NullPointerException異常

然后大家也知道,從java轉(zhuǎn)換Kotlin過來的代碼,按照以往的java思路,都會存在 Object!! 這樣的代碼情況。如果你沒有針對這個進(jìn)行處理,那么其實轉(zhuǎn)換過來跟java一樣沒什么意思,依然存在以往的隱藏的 NullPointerException異常

那么,該篇文章就是如何針對性的處理!

1. 用 val 而不是 var

使用滿足條件:

  1. 初始化時就已經(jīng)確定具體值的,或者使用by委托來使用,委托是確保第一次取值的時候,進(jìn)行第一次的賦值。
  2. 只能get,不能set,即是所謂的不可變

2. 使用 lateinit

使用滿足條件:

  1. 當(dāng)val不能滿足條件的時候,比如最常用的需要在 onCreate() 代碼中初始化
  2. 確保使用之前已經(jīng)賦值完畢,否則,訪問未初始化的 lateinit 屬性會導(dǎo)致 UninitializedPropertyAccessException 異常

3. let、Elvis 運算符

使用滿足條件:

  1. 使用這些都是確保為null時的邏輯如何如何,不為null時的邏輯如何如何,如果你只處理不為null時的邏輯,那么在將來要找到哪里具體錯誤的時候就很困難,所以,要確保這些就算是為null的,也是屬于正常邏輯的時候才使用。否則,記得自己拋出異常。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 人生苦多,快來 Kotlin ,快速學(xué)習(xí)Kotlin! 什么是Kotlin? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,669評論 9 118
  • 簡介 Kotlin[https://github.com/JetBrains/kotlin] 是 JetBrain...
    Whyn閱讀 915評論 0 1
  • 前言 Google 在2017年 I/O 大會上宣布,Kotlin 正式成為 Android 的一級開發(fā)語言,和 ...
    sweetying閱讀 1,611評論 0 5
  • 寫在開頭:本人打算開始寫一個Kotlin系列的教程,一是使自己記憶和理解的更加深刻,二是可以分享給同樣想學(xué)習(xí)Kot...
    胡奚冰閱讀 977評論 2 4
  • 前言 已經(jīng)在線上應(yīng)用采用java和kotlin混編半年多,基本上邏輯代碼全部采用kotlin進(jìn)行實現(xiàn)。 使用kot...
    wgyscsf閱讀 1,107評論 0 1

友情鏈接更多精彩內(nèi)容