在测试中:

if(v is BaseModel)

如果v是BaseModel类型的直接实例,则将断言true,但将
如果v不是BaseModel类型的直接实例,但从BaseModel继承,则断言false。如果Kotlin有一个关键字可以断言是真的,如果有一个关键字“来自”,这样的测试会很好
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

关于kotlin - 如何确定对象是否继承自Kotlin中的某个类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43011309/

10-12 03:07