读懂kotlin源码

几年前(大概15,16年前后),用EclipseIDE写安卓应用(apk),使用的是java开发。现在(2021年),有个安卓开发的任务,在网上一看,真是发生了天翻地覆的变化。IDE都开始使用androidstudio,这个还比较容易。可是,开发里面用到了RecylerView,直接使用比较麻烦,于是在男人同性交友网站找到了BaseRecylerViewAdapterHelper,这个居然是用kotlin编写的,而且打开源文件一看,这是什么东东,心中立刻有万头羊驼喷涌而出


前言

重要提示:安卓使用RecylerView,直接用最简单,根本不需要使用什么第三方扩展。浪费了好几天时间,第三方扩展搞明白后,发现只是把简单问题复杂话,根本是脱裤子放屁。当然,如果你有时间,作为学习资料参考还是可以的。
Kotlin,据说是因为Oracle公司对java的版权限制,导致google开始开发kotlin。不是说google很有钱吗,这个借口站得住脚吗?有明白人解释下吧。不过,反正不论你讨厌喜欢,kotlin还是来了,随着其用户数量增加、性能的完善,说不定google哪天在安卓平台彻底抛弃java也是未可知的


提示:以下是本篇文章正文内容,下面案例可供参考

一、kotlin是什么?

简单说,kotlin是google搞出来代替java的一种安卓上的开发语言。

二、看上去奇怪的语法

反正,刚接触kotlin,感觉这个东西太邪恶了。在class声明类名称时,居然在后面直接上括号带参数。还有声明变量,变量类型放在后面就算了,居然可以使用 by lazy进行赋值。可以使用apply对对象进行初始话。现在,真的很不习惯,不知道那些kotlin开发过项目的其它人感觉如何。总不能为了少些几行代码,让代码变得含混不清把(至少我这个初学者这么认为的)。

1、@JvmOverloads

在有默认参数值的方法中使用@JvmOverloads注解,则Kotlin就会暴露多个重载方法。注意:如果不需要兼容Java, @JvmOverloads是可以省略的。

2、constructor

kotlin有主构造函数和次构造函数,而且有init初始化函数。关于constructor的参数声明方式,请参照编程小猪666的Kotlin构造函数(constructor)完全解析。更详细的初始化过程说明,请参照海晨忆的kotlin之构造函数

3、companion object

伴生对象,阅读代码时,就先简单的看成java中的static吧。

4、MutableList:

MutableList 是 Kotlin 定义的一个接口,是可变的列表。然后 ArrayList 是 Java 那边的 API。你所说到的看源码是 ArrayList,是因为 Kotlin 设计本身就有多平台性。Kotlin 提供了很多个平台的支持:Kotlin/JS、Kotlin/Native… Kotlin/JVM 只是其中一种。因此你看到的 mutableListOf 返回了 ArrayList 只是这个函数在 Kotlin/JVM 上对应的实现,在其它平台上则是不一定相同的

5、?

? 表示当前对象可以为空,即可以 = null
!! 表示当前对象不为空的情况下执,为空抛出异常
详细说明,参见田易的Kotlin 的?和!!

6、*

*: start projection
与java中的?类似,但是java中的?可以是null。例如,java

List<?> list;

与kotlin的

var list:MutableList<*>

的功能基本相同。

7、 lambda函数

lambda函数其实就是语法糖,让代码更晦涩难懂,看上去高大上,说是书写简洁,理解了也就那么回事。
推荐阅读 jetictors Kotlin——高级篇(一):Lambda表达式详解

8、open关键字

在kotlin中它所有的类默认都是final的,那么就意味着不能被继承,而且在类中所有的方法也是默认是final的,那么就是kotlin的方法默认也不能被重写
参照 Kotlin中的open关键字

9、先到这里吧

总结

再重复一遍,重要提示:安卓使用RecylerView,直接用最简单,根本不需要使用什么第三方扩展。浪费了好几天时间,第三方扩展搞明白后,发现只是把简单问题复杂话,根本是脱裤子放屁。当然,如果你有时间,作为学习资料参考还是可以的。
这个上面,已经浪费了三天时间了,虽然对比java代码,慢慢的能理出个思路,希望这个学习的过程能尽量在短点儿吧。快速理解安卓的RecylerView的应用,建议参照:简书网文RecyclerView。当然,安卓上搞开发,怎么能离得开谷歌,虽然国外的要墙,但是国内有中文的镜像噢。The last,but not the least,中国境内安卓开发网RecyclerView

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值