测试线性类关系

时间:2008-12-02 16:48:58

标签: java class

我正在调用这个线性类关系,但如果我错了,请纠正我。我想测试对象类 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
}

这是一个合适的检查吗?

1 个答案:

答案 0 :(得分:2)

您的测试有效。我更喜欢对称检查:

if (a.getClass().isInstance(b) || b.getClass().isInstance(a)) { 
}