小编Laj*_*thy的帖子

kotlin反射检查可空类型

如何测试KType变量是否包含可为空的kotlin类型的值(eG Int?)?

我有

var type: KType 
Run Code Online (Sandbox Code Playgroud)

变量来自a KProperty<*>.returnType,我需要检测它是否等于某些kotlin类型(Int,Long等).这适用于:

when (type) {
    Int::class.defaultType -> ...
    Long::class.defaultType -> ...
    else -> ...
}
Run Code Online (Sandbox Code Playgroud)

但这仅适用于非可空类型,因此第一个分支与Int不匹配?但是我还是无法弄清楚我是如何检测到的类型是Int?除了明显但不那么好

type.toString().equals("kotlin.Int?")
Run Code Online (Sandbox Code Playgroud)

reflection nullable kotlin kotlin-null-safety

5
推荐指数
1
解决办法
1329
查看次数

标签 统计

kotlin ×1

kotlin-null-safety ×1

nullable ×1

reflection ×1