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