kotlin:向空指针异常说再见

1.java中的空指针

java最常见,最危险的错误

在java中,我们最常见的错误莫过于空指针异常。不好好的处理的话,程序很容易出现崩溃的现象。

NullPointerException 是java程序员的噩梦,最最高频的bug

出现空指针的现象是常见的,也是最危险的。那怎么去解决呢?
在java中,我们需要主动去检查这个引用对象是否为空。
这就有个很大的缺点:我们会常常不经意,或者忘了去检查,在程序跑起来的时候,才意识到出现了空指针异常。

2.kotlin的优雅处理方案

在编译时期就处理了可能会产生空指针的情况,若产生空指针,会编译不通过

从而避免了执行代码时出现空指针异常

例如:var name:String 是正常声明,不能出现null,

name=null,编译器提示出错。

var name:String? 声明变量name可以null

name=null,是可以正常通过的
核心点变量声明时候就要明确是否可以null,如果不可以null但后续有null情况编译器会提醒。

如果声明可以null,后续编译器也会做很多贴心的帮助减少代码量,不用自己判断。

安全调用操作符:

java中空指针的处理就是if else判断,null怎么办,non-null怎么办。

kotlin通过一个?声明大大节约了代码。

kotlin中有操作符“?”就是声明变量 name 可能有空的情况出现,需要处理,默认情况出现空直接打印 null


 

Elvis 操作符 ?:
在你的表达式为null的时候执行 ?:后面的操作

!! 操作符
当你操作的对象为空的时候,抛出空指针异常!

任性的输出KotlinNullPointerException 感觉没多大意义,好的代码应该尽量避免出现!!,太不可控了。

出现!!的情况大概率是:当你使用AS将Java代码转换成Kotlin代码后会出现很多的!! 操作符,因为出现!!意味着这里可能有未捕获的KotlinNullPointerException异常。

自己书写代码尽量多用?操作符在编译器就拦截住空指针,不要用!!操作符,大量!!操作符出现kotlin是无法帮助你解决可能出现的空指针异常了。

3.总结

kotlin主要编译器对null处理了。

1情况1可能有空,那就提醒程序后续代码要注意处理,需要程序员做的判断,默认处理了

2.情况2不会空,但是后续出现空的用法,直接编译器提醒出来

个人理解kotlin中把当作一种类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值