用 kotlin 的方式自定义回调事件(kotlin函数参数)
提示:本篇发表于两年前,当时图片处理上有些画蛇添足,但是我觉得并不影响我想要表达的内容。如果您在阅读以下内容时感觉身体不适,请出门右转就好,谢谢~
java 中自定义回调事件的写法
创建 interface类,创建 interface 对象,实现 set 方法:
使用:
kotlin 中自定义点击事件写法
依照 java 的思想(不推荐)
创建 interface类,创建 interface 可变对象(var)
使用:
利用 kotlin 函数作为参数(强烈推荐)
来看一下系统的点击事件在 kotlin 中是什么样的:
是不是简直简洁到不像话?再看看你自己定义的点击事件回调,感觉跟还在用 java 开发一样…
下面就来看个新的写法:
创建一个函数对象,在需要回调的地方调起这个函数:
用法:
是不是比用对象表达式看起来还要简洁?
2018.12.12 更新:
上边截图里的 kotlin 点击事件回调,还有更简洁的定义方法:
之前的写法是声明不可为 null 的函数变量,然后判断是否初始化再去 invoke 函数。
现在声明可为 null 的函数变量,在 invoke 函数的时候用 ?.
表示函数变量可空,如果没有给这个点击事件函数赋值的话,这行代码也不会引起 crash。现在连判断条件都不需要了,更精简了。
这里再说点个人经验,如果你的回调方法不止一个的话,推荐还是声明 interface 来做,这样的话都在一个 interface 里边好管理一些