Как определить, является ли объект унаследованным от определенного класса в Котлине?

В тесте:

if(v is BaseModel) 

будет утверждать true, если v является прямым экземпляром типа BaseModel, но будет утверждать false, если v не является прямым экземпляром типа BaseModel, но наследуется от BaseModel. Было бы неплохо, если бы у Kotlin было ключевое слово, которое будет утверждать true, если есть ключевое слово 'is from', так что тест

 if(v is from BaseModel) 

будет утверждать true, если класс v наследуется от BaseModel.

Но как Котлин разрешает это сейчас?

Как сказал @ 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