![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Kotlin
llayjun
努力奋斗!
展开
-
let,with,run,apply,also函数区别
let,with,run,apply,also函数区别函数名定义inline的结构函数体内使用的对象返回值是否是扩展函数适用的场景letfun <T, R> T.let(block: (T) -> R): R = block(this)it指代当前对象闭包形式返回是适用于处理不为null的操作场景withfun <T, R> with(receiver: T, block: T.() -> R): R = receiver.原创 2021-06-16 16:41:38 · 174 阅读 · 0 评论 -
Android自定义的属性使用双向绑定
目标:在xml中自定义属性双向绑定,常用于一些自定义view中的EditText监听数据变化使用<EditText app:bindingName='@={binding.name}' ... >自定义属性的 setXXX@BindingAdapter("bindingName")@JvmStatic fun setBindingName(edt : EditText, txt : String){ edt.setText(txt)}自定义属性的 getX原创 2020-09-04 14:10:35 · 845 阅读 · 0 评论 -
移动端双Token免登录(附代码)
参考自:https://blog.csdn.net/huweijian5/article/details/88903561前奏在安卓中一开始使用一个Token进行接口安全,但是Token假如过期时间设置的长,难免会有安全风险,假如设置的时间端,就会出现用户没用多久,就会使得用户需要重新登录采用双Token的方式,来使用户无感知的刷新Token,实现真正的免登录设计用户在登录之后返回access_token和refresh_token(这里假定他们的有效期分别是2小时和7天)当access_原创 2020-07-28 09:11:16 · 1864 阅读 · 0 评论 -
kotlin的属性委托
Kotlin 标准库为几种有用的委托提供了工厂方法。参考文章延迟属性Lazyval lazyValue: String by lazy { println("computed!") "Hello"}fun main() { println(lazyValue) println(lazyValue)}输出computed!HelloHello可观察属性 Observableimport kotlin.properties.Delegates原创 2020-07-16 16:04:55 · 705 阅读 · 0 评论 -
Kotlin的匿名方法实现接口回调
Kotlin的匿名方法使用还在为每次接口回调定义接口名字儿苦恼吗?是时候来学习一波儿Kotlin匿名方法实现接口回调了以往的方法定义// 通用办法class A (val aListener: AListener){ fun clickButton (text: String?) { aListener.onAListener(text) } // 定义接口 interface AListener { fun onAListe原创 2020-07-08 17:12:20 · 1888 阅读 · 0 评论