最近的项目大多数是kotlin代码,然而有的时候自己写了一些java代码,java调用kotlin当时就有点蒙蔽了,在一定得取经之后,写下当时的“心酸泪史”
protected 区别:
1)Kotlin 继承 Java 时,可以直接拿到 protected 属性
2)Kotlin 继承 Kotlin 时也一样
3)但是 Java 继承 Kotlin 时,需要用 getter 和 setter 操作 protected 属性
kotlin:
java:
如果在 Kotlin 父类中是用 lazy 声明的 protected 属性,在 Java 中获取还要加上getValue()
(在 Kotlin 中对应 .value
)
扩展函数和顶层函数
这两个都是 Kotlin 的特性,在 Kotlin 中调用就是如丝般顺滑,但是在 Java 中调用还是普通的静态方法,类名是所在文件名加Kt:
kotlin:
java:
invoke 方法就是 lambda 的内容函数了,这也证明了 Kotlin 中 lambda 的实现方式还是定义了一个接口。使用 lambda 时需要考虑额外的性能开销,尽量使用 inline 优化性能。
总结:这次呢,由于时间紧迫,只总结了这两个点,下次持续更新,看了我的对比,是否觉得kotlin很炫酷呢?那就赶快和我一起入手学习吧,大家伙一起成长起来,然后一起互相取经