【发布时间】:2010-02-08 16:50:19
【问题描述】:
Class Model<T>{
private T t;
.....
private void someMethod(){
//now t is null
Class c = t.getClass();
}
.....
}
当然会抛出 NPE。
Class c = t.getClass();
如果我的实例为空,我应该使用什么语法来获取 T 类? 有可能吗?
【问题讨论】:
-
如果你的实例为空,怎么会有类类型?
-
据我所知,这是不可能的。请记住,泛型是编译时的,而不是运行时的。处理这个问题的一个更常见的方法是存储一个 Class 对象来保存这个类(如果你真的需要它)。
-
同意,Kylar 和 froadie:您需要为“t”添加额外的非空值检查。