null安全与异常

null安全.jpg

null

  • 在Java中我们常见的空指针异常NullPointerException,带给我们很多麻烦。Kotlin作为强大的语言,势必会基于以往的语言设计经验对其进行改良。Kotlin更多地把运行时可能会出现的null问题,以编译时错误的方式,提前在编译期强迫我们重视起来,而不是等到运行时报错,防范于未然,提高了我们程序的健壮性。

可空性


  • 对于null值问题,Kotlin反其道而行之,除非另有规定,变量不可为null值,这样一来,运行时崩溃从根源上得到解决。
fun main(){
    val str = "butterfly"
    str = null
    println(str)
}

Kotlin的null类型


  • 为了避免NullPointerException,Kotlin的做法是不让我们给非空类型变量赋null值,但null在Kotlin中依然存在。
fun main(){
   var str:String? = readLine()
   str = null
   printlin("input:$str")
}

null安全


  • Kotlin区分可空类型和非可空类型,所以你要一个控股类型变量运行,而它又可能不存在,对于这种潜在的危险,编译器时刻警惕着。为了应对这种风险,Kotlin不允许你在可空类型值上调用函数,除非你主动接手安全管理。
fun main(){
   val str:String = readLIne().capitalize()
   println(str)
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容