我正在调用这个线性类关系,但如果我错了,请纠正我。我想测试对象类 A 是否是对象 B 类的祖先或后代。
例如, AbstractCollection 与对象和 ArrayList 线性相关。但是, ArrayList 与 Vector 线性相关。
我的第一次刺伤是:
//...Assume objects A and B were declared...
Class<? extends Object> Aclass = A.getClass();
if(Aclass.isAssignableFrom(B.getClass()) || Aclass.isInstance(B)){
//Their types are linearly related, at the least
}
这是一个合适的检查吗?
答案 0 :(得分:2)
您的测试有效。我更喜欢对称检查:
if (a.getClass().isInstance(b) || b.getClass().isInstance(a)) {
}