作用
- 更加流畅地,一气呵成进行类型转换
代码
代码语言:javascript复制/**
* 将一种类型转换为另一种类型,如果类型转换不允许,返回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
- 使用Kotlin Reified 让泛型更简单安全