kotlin.reflect.KClass.isInstance(值:有吗?)不工作
我在试着跟着kotlin.reflect.KClass.isInstance(值:有吗?)不工作,class,kotlin,reflection,instanceof,Class,Kotlin,Reflection,Instanceof,我在试着跟着 "simple string"::class.isInstance(kotlin.String) 但它返回错误 我正在使用 org.jetbrains.kotlin:kotlin reflect:1.3.21 另一个例子也失败了 1::class.isInstance(kotlin.Int) true::class.isInstance(Boolean) 请帮我理解它 如果API使用不正确,isInstance函数将执行相反的检查,如文档所示: 如果[value]是给定平台上此
"simple string"::class.isInstance(kotlin.String)
但它返回错误
我正在使用
org.jetbrains.kotlin:kotlin reflect:1.3.21
另一个例子也失败了
1::class.isInstance(kotlin.Int)
true::class.isInstance(Boolean)
请帮我理解它 如果API使用不正确,isInstance函数将执行相反的检查,如文档所示: 如果[value]是给定平台上此类的实例,则返回true Int行没有引用类型,您将错过::类 一种可能的解决方案是翻转声明:
String::class.isInstance("a string") /// true
Int::class.isInstance(42) /// true
您还可以比较KClass对象,例如432::class==Int::class,或者使用KClass函数IsubClassof和IsubPerClassof如果API使用不正确,isInstance函数会执行相反的检查,如文档所示: 如果[value]是给定平台上此类的实例,则返回true Int行没有引用类型,您将错过::类 一种可能的解决方案是翻转声明:
String::class.isInstance("a string") /// true
Int::class.isInstance(42) /// true
您还可以比较KClass对象,例如432::class==Int::class,或者使用KClass函数isSubclassOf和IssupClassOfkotlin.String、kotlin.Int和Boolean作为值,因此它们引用相应类的值。因此,第一行检查String companion对象是否是字符串,并正确地告诉您它不是字符串。kotlin.String、kotlin.Int和Boolean用作值,因此它们引用相应类的名称。因此,第一行检查String companion对象是否是字符串,并正确地告诉您它不是字符串。432::class==Int::class它工作,但Int::class.isInstance42不工作。谢谢432::class==Int::class它可以工作,但Int::class.isInstance42不能。谢谢我正在寻找Java的ClassisSignableFromObj函数模拟。有趣的是,kotlin.Int表示伴随对象,但kotlin.Int::class表示not的KClass,而不是companion@EugenePetrenko你是说ClassisSignablefromClass?很好,这里有一个对称的isSubclassOf。我在寻找Java的ClassisSignableFromObj函数模拟。有趣的是,kotlin.Int表示伴随对象,但kotlin.Int::class表示not的KClass,而不是companion@EugenePetrenko你是说ClassisSignablefromClass?很好,这里有一个对称的isSubclassOf。