Kotlin 避免 !! ?!

作者: zhongjh | 来源:发表于2022-03-10 17:35 被阅读0次

    用过Kotlin语言的大家都知道,对于 Null 的强制性检查是 Kotlin 的特点之一,可以避免很多在 Java 中隐藏的 NullPointerException异常

    然后大家也知道,从java转换Kotlin过来的代码,按照以往的java思路,都会存在 Object!! 这样的代码情况。如果你没有针对这个进行处理,那么其实转换过来跟java一样没什么意思,依然存在以往的隐藏的 NullPointerException异常

    那么,该篇文章就是如何针对性的处理!

    1. 用 val 而不是 var

    使用满足条件:

    1. 初始化时就已经确定具体值的,或者使用by委托来使用,委托是确保第一次取值的时候,进行第一次的赋值。
    2. 只能get,不能set,即是所谓的不可变

    2. 使用 lateinit

    使用满足条件:

    1. 当val不能满足条件的时候,比如最常用的需要在 onCreate() 代码中初始化
    2. 确保使用之前已经赋值完毕,否则,访问未初始化的 lateinit 属性会导致 UninitializedPropertyAccessException 异常

    3. let、Elvis 运算符

    使用满足条件:

    1. 使用这些都是确保为null时的逻辑如何如何,不为null时的逻辑如何如何,如果你只处理不为null时的逻辑,那么在将来要找到哪里具体错误的时候就很困难,所以,要确保这些就算是为null的,也是属于正常逻辑的时候才使用。否则,记得自己抛出异常。

    相关文章

      网友评论

        本文标题:Kotlin 避免 !! ?!

        本文链接:https://www.haomeiwen.com/subject/ysafdrtx.html