isAssignableFrom简单说明

130 阅读1分钟

网上很多人解释这个方法,基本都是写了一堆测试代码,根据打印日志来说明的。我觉得太麻烦,从名称来说明会简单很多。

assign 分配,指派,赋值; Assignable 可赋值的;

A isAssignableFrom B,A 能否 被B 赋值
A isAssignableTo B,A 能否赋值给 B

fun Class<*>.isChildClassOf(parentClass: Class<*>): Boolean {
    return parentClass.isAssignableFrom(this)//parent < = this
}

fun Class<*>.isParentClassOf(childClass: Class<*>): Boolean {
    return isAssignableFrom(childClass)//this < = child
}

fun Class<*>.isAssignableTo(parent: Class<*>): Boolean {
    return parent.isAssignableFrom(this)
}