Kotlin 个人踩坑

1. kotlin的Null Safety很方便。但是在和java做interop的时候需要额外小心。

例,java的List可能为空对象,kotlin的List为非空对象。

将一个java List转成kotlin List后,list?.forEach{...}, intellij会提示冗余的非空检查,使用list.forEach{...}就可以了。

但是非空检查其实是有必要的。尤其是调用java第三方类库的时候,可能返回空值。

 

2.扩展方法重名的问题。

kotlin允许对类(Class)添加扩展方法。

调用的时候直接通过obj.extensionMethod{...}即可,本意是提供更多的语法糖。但是随着引入类库的增多,及自定义扩展方法的增多,会出现不同实现的同名方法。都是通过obj.extensionMethod{...}调用。

需要额外小心选择正确的方法导入,建议不要开启intellij的自动导入,可能会导入错误的实现。

比如,List.flatMap{...}在kotlin.Collection和arrow库中都存在,但实现方式不同,返回值不同,按需正确导入调用。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值