【发布时间】:2008-12-02 16:48:57
【问题描述】:
我称之为线性类关系,但如果我错了,请纠正我。我正在测试对象A 的类是否是对象B 的类的祖先或后代。
例如,AbstractCollection 与Object 和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
}
这是一个合适的检查吗?
【问题讨论】:
-
我想我误解了这个问题,但是 (a instanceof b || b instanceof a) 有什么问题?我不确定上课是否必要或有帮助,但我可能完全缺少某些方面。
-
像往常一样,我把它弄得太复杂了。但是,像您所说的那样简单地进行两个 instacedof 测试是行不通的,因为它期待“(object)istanceof(type)”。 Aaron 的解决方案效果很好。