muralimohan962
11/07/2024, 11:43 AMfun isParentHasType(type: Class<*>, value: Any): Any {
val assignableFrom = type::class.java.isAssignableFrom(value::class.java)
return assignableFrom
}
open class A
open class B : A()
open class C : B()
fun main() {
val c = C()
val parentOfType = isParentHasType(A::class.java, c)
val parentHasType2 = isParentHasType(c::class.java, A())
println(parentHasType2)
println(parentOfType)
}
In both these cases I get false returned from isParentHasType function. What’s wrong with my code?apsaliya
11/07/2024, 3:39 PMisParentHasType
doesn't look correct. you are taking Class<*>
as parameter type and then using class type of that variable so essentially calling isAssignableFrom
on Class<Class<*>>
think you want this
fun isParentHasType(type: Class<*>, value: Any): Any {
val assignableFrom = type.isAssignableFrom(value::class.java)
return assignableFrom
}