如何确定一个对象是否是从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