技术小黑屋

KotlinTips asType 快捷转换

作用

  • 更加流畅地,一气呵成进行类型转换

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * 将一种类型转换为另一种类型,如果类型转换不允许,返回null
 * */
inline fun <reified T> Any.asType(): T? {
    return if (this is T) {
        this
  } else {
        null
  }
}



fun testAsType(charSequence: CharSequence?) {
    //书写不流畅,需要回到开始出增加()
  (charSequence as? String)?.length
  //一气呵成书写
  charSequence?.asType<String>()?.length
}

reified