Ste*_*ers 5 java reflection class object superclass
返回表示此Class表示的实体(类,接口,基本类型或void)的超类的Class.如果此Class表示Object类,接口,基本类型或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.
}
Run Code Online (Sandbox Code Playgroud)
这是一个Java错误吗?有没有更好的方法来检查是否superclass是一个Object?
文档说,如果你的班级是java.lang.Object,那么它将getSuperclass返回null.换句话说,如果你这样做
Class objSuper = Object.class.getSuperclass();
Run Code Online (Sandbox Code Playgroud)
然后objSuper会null; 这正是发生的事情(演示).
它的出现,不过,您modelClass是不是 java.lang.Object,而且这也不是一种原始的或接口.因此,返回java.lang.Object很有意义,因为所有类都隐含地继承它.
| 归档时间: |
|
| 查看次数: |
5911 次 |
| 最近记录: |