如何确定一个对象是否是从Kotlin中的某个类继承的?

在测试中:

if(v is BaseModel) 

如果v是BaseModel类型的直接实例,将声明为true,但如果v不是BaseModel类型的直接实例,而是从BaseModel继承,则会声明为false。 如果Kotlin有一个关键字,如果有一个关键字“is from”,那么这个关键字会被认为是真的,那么这样做会不错

 if(v is from BaseModel) 

如果v的类是从BaseModel继承的,将声明为true。

但是Kotlin目前如何解决这个问题呢?

正如@Krzysztof Kozmic所说,你给的例子就是你所要求的。 只是举一些例子:

 // Built in types val x: Int = 25 println(x is Number) // true // Custom types open class A open class B : A() open class C : B() println(B() is A) // true println(C() is A) // true 

我猜你在问什么是如何确定v 直接继承BaseModel而不是通过中间基类?

如果是这样的话,那么这将做到:

 v.javaClass.superclass == BaseModel::class.java