美文网首页
kotlin之实战运用

kotlin之实战运用

作者: Method | 来源:发表于2021-06-28 16:16 被阅读0次
  1. build模式配置方法
java写法
fun setConnect(timeout: Long):Builder{
     connectTimeout = timeout
     return this
}
kotlin写法       
fun setConnectTimeout(timeout: Long) = apply {
      connectTimeout = timeout
}

//如果函数体是表达式可以直接用 = 
//apply返回的是当前类
  1. as?
return api as? T ?: generateApi(service)

as运算符用于执行引用类型的显式类型转换。如果要转换的类型与指定的类型兼容,转换就会成功进行;
如果类型不兼容,使用as?运算符就会返回值null。在Kotlin中,父类是禁止转换为子类型的。
  1. 替换匿名内部类
java写法
private val interceptor0 = object: Interceptor{
        override fun intercept(chain: Interceptor.Chain): Response {
            return chain.proceed(chain.request())
        }
    }
    
kotlin写法
private val interceptor1
     get() = Interceptor { 
         it.proceed(it.request())
}
  1. 登录后保存User信息
 var user: User? = null
        set(value) {
            field = value
            save()
        }
        get() {
            if (field == null) {
                // 初始化用户信息
                field = UserStore.instance.getUser()
            }
            return field
        }
登录成功后只需要将 user = User()
退出登录只需要将 user = null

判断用户是否登录扩展

var isLogin: Boolean = false
        private set
        get() = user != null && apiToken.isNotEmpty() 

如果禁止set 可以用private修饰。

  1. 13213
  2. 21321
  3. 123213
  4. 123123

相关文章

网友评论

      本文标题:kotlin之实战运用

      本文链接:https://www.haomeiwen.com/subject/oigqultx.html