如何检查kotlin中的“instanceof”类?

在kotlin类中,对于类类型T ,我有作为对象的方法参数(请参见kotlin doc)。 作为对象,我正在调用方法时传递不同的类。 在Java中,我们可以使用它的类的对象的instanceof来比较类。

所以我想在运行时检查和比较它是哪个类?

我如何检查kotlin中的instanceof类?

使用is

 if (myInstance is String) { ... } 

或者相反!is

 if (myInstance !is String) { ... } 

我们可以通过使用is运算符或其否定形式!is来检查对象在运行时是否符合给定的类型。

例:

 if (obj is String) { print(obj.length) } if (obj !is String) { print("Not a String") } 

你可以使用的is

 class B val a: A = A() if (a is A) { /* do something */ } when (a) { someValue -> { /* do something */ } is B -> { /* do something */ } else -> { /* do something */ } } 

尝试使用关键字调用is 官方页面参考

 if (obj is String) { // obj is a String } if (obj !is String) { // // obj is not a String }