Max*_*Max 3 java generics syntax
Class Model<T>{
private T t;
.....
private void someMethod(){
//now t is null
Class c = t.getClass();
}
.....
}
Run Code Online (Sandbox Code Playgroud)
当然它会引发NPE.
Class c = t.getClass();
Run Code Online (Sandbox Code Playgroud)
如果我的实例为null,我应该使用什么语法来获取T的类?可能吗?
由于类型擦除,这是不可能的.
有以下解决方法:
class Model<T> {
private T t;
private Class<T> tag;
public Model(Class<T> tag) {
this.tag = tag;
}
private void someMethod(){
// use tag
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
544 次 |
| 最近记录: |