按照Class.getSuperclass() documentation:为什么Class.getSuperclass()有时会返回Object.class?
返回表示此Class所表示的实体(类, 接口,基本类型或void)的超类。如果这个 类代表对象类,接口,原始类型或void,则返回null。
但我有时看到Object.class
(使用jdk1.7.0_45)返回 - 所以我不必单独检查它:
final Class<?> superclass = modelClass.getSuperclass();
if ((superclass != null) && (Object.class != superclass)) {
// Do stuff with superclasses other than Object.
}
这是一个Java错误吗?有没有更好的方法来检查superclass
是否是Object
?
在你的场景中,一切都是''instanceof''对象'。你想达到什么目的? –
我不会详细讨论,但正在使用反射循环遍历类的所有方法,并递归地除了Object以外的所有祖先。 –
如果你不想详细说明,那么我不知道我如何能得到帮助。如果我知道你的意图,也许有一种不同的方式来做你想做的事情。 –