让你的代码量减少3倍!使用kotlin开发Android(三) 缩短五倍的Java Bean

 

回顾一下

哈,没想到你已经坚持不懈看到第三篇了,不错哈~坚持就是胜利。

让你的代码量减少3倍!使用kotlin开发Android(二) –秘笈!扩展函数

我们介绍了扩展函数,这里对上一篇进行一点小小的补充。

还记得textview是如何setText()的吗

不知道你有没有想过,这个.text是如何实现的呢。 哈哈,其实你们大概已经猜到了。就是通过扩展函数实现的

开始今天的内容

今天介绍的是一种叫做数据类的类,他没有什么功能,只负责储存数据,也就是我们常说的Java Bean,通常,在Java语言里,我们定义一个实体,是这样的

可以看到,仅仅两个属性,加上getter setter有这么多代码。那么kotlin是什么样子呢?

你不要说我了个擦,这确实是全部代码。。没有少东西了。可以看到语法,括号里跟着参数,也是一种构造器。并且不用getter setter。

使用的时候正常使用就可以了。

这里提到一点,var 和val的区别。var一般是变量,val一般是常亮,即不可变量,也多用于只是用一次的变量。

这里你可能有疑问了,如果构造器是单参或者空参的呢? 语法如下:

举个栗子

接下来以一个点击按钮,传递数据类向下一个Activity为栗子,把之前的知识应用一下。

首先,新建一个SecondActivity,提供一个静态方法,用于Activity的转跳。想必大家都知道这样的好处,就是让调用者不必看源码就知道需要什么参数。如果你按照java写,就会发现没有static这个关键字!不要慌,这里可以使用 伴生对象 来实现。伴生对象是伴随这个类声明周期的对象~下面看详细用法。

在第一个Activity中,给按钮设置监听器,同时转跳到第二个Activity并且传递User对象。

大功告成了!接下来运行下apk,看看第二个Activity成功接收到了传递的User(对了别忘了把User序列化).

对比一下,嗯哼?比Java少了多少? 有没有很爽啊哈。

 

本文这就结束了(嫌文字太短?不要急啦,先去动手实践下咯。。系列文章,既然挖了坑,就不会拖更的(吧..))

本项目使用的代码地址
欢迎加入Kotlin小乐园群:479109923

让你的代码量减少3倍!使用kotlin开发Android(三) 缩短五倍的Java Bean》有8个想法

  1. 因为是弱引用,如果要获取对象的属性值,还要强转一下,var user = user as User
    ==||,没有看到这里,自己一直试,发现怎么都点不出来,囧~~~

  2. 非常赞,从一看到现在感觉浑身都有劲了。就是某些地方有些不好理解,demo中有两个问题点归纳如下:
    1、Entity要实现Serializable接口
    class User : Serializable {}
    2、SecondActivity->onCreate方法代码错误
    intent.getStringExtra(USER) -> val user = intent.getSerializableExtra(USER) as User
    toast(…) -> toast(user.id + ” : ” + user.name)
    接着看,想要马上用到下个项目,Come on!

发表评论

电子邮件地址不会被公开。