【发布时间】:2013-12-10 09:20:16
【问题描述】:
根据Class.getSuperclass() documentation:
返回代表实体超类的类(类, 接口、原始类型或 void)由此类表示。如果这 Class 代表 Object 类、接口、原语 type 或 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。你想完成什么? -
我不会详细介绍,但反射被用于循环遍历类的所有方法,并递归地遍历除 Object 之外的所有祖先。
-
如果您不详细说明,那么我不确定如何提供帮助。如果我知道你的意图,也许有不同的方式来做你想做的事情。
-
细节被省略了,因为它与问题无关......
标签: java class object reflection superclass