美文网首页
Kotlin-空指针检查

Kotlin-空指针检查

作者: 在下陈小村 | 来源:发表于2021-03-20 13:18 被阅读0次

    Kotlin搞空指针检查
    现象:java存在问题,大量的崩溃是空指针异常。
    原因:java的空指针异常是一种运行时异常,不会在编译过程中发现,所以难以避免
    Kotlin的解决之道:搞了一个空指针检查。Kotlin默认所有的参数和变量不可为空。

    //study 默认不能传空
    fun doStudy(study: Study){
        study.readBooks()
        study.doHomework()
    }
    //这么写会直接报异常
    doStudy(null)
    

    怎么传入一个可为空的值,

    fun doStudy(study: Study?){
        study.readBooks()
        study.doHomework()
    }
    

    这样study.readBooks()就报错了,因为study可能为null
    解决的办法:?.,表示当study不为空的时候执行后面的方法。

    fun doStudy(study: Study?){
        study?.readBooks()
        study?.doHomework()
    }
    

    那么我每次都要写?.来表示study不为空的时候再执行吗?
    kotlin提供了一个let函数

    study?.let { 
            it.readBooks()
            it.doHomework()
        }
    

    如果我在函数的调用处已经判断过study不为空,我非常确定study不可能为空,那么可以使用!!.断言来表示

    study!!.readBooks()
    

    kotlin中的三目运算符的表现形式也变了,当?:左边的不为空的时候则执行左边的表达式,当左边的表达式为空,则用右边的来替换。

    fun  test(){
        val t:String="sssssss"
        fun getTextLength(text:String?)=text?.length?:0
        println(getTextLength(t))
    }
    

    相关文章

      网友评论

          本文标题:Kotlin-空指针检查

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