如何获得泛型课程

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的类?可能吗?

axt*_*avt 7

由于类型擦除,这是不可能的.

有以下解决方法:

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)