2017-03-25 78 views
0

在測試:如果V型BaseModel的直接實例,但會 斷言假,如果v不是類型BaseModel的直接實例,但是從BaseModel繼承如何確定某個對象是否是從Kotlin中的某個類繼承的?

if(v is BaseModel) 

將斷言屬實。將是很好,如果有科特林如果有一個關鍵字,將斷言真正的關鍵詞「是」,使得如果V的類是從BaseModel繼承了測試

if(v is from BaseModel) 

將斷言屬實。

但是Kotlin目前如何解決這個問題?

+2

我不知道我理解這個問題。您發佈的代碼*確切*您要求的內容 –

+0

剛剛感到困惑,不需要'是'關鍵詞是'也能夠做到這一點.... –

回答

1

正如@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 
2

我猜你在問什麼是如何確定v直接繼承BaseModel而不是通過中間基類?

如果是這樣的話,那麼這將做到:

v.javaClass.superclass == BaseModel::class.java 
相關問題