取得类中属性的泛型类型

class  GGG {
    
private  Map < String, Double >  field;

    
public  Map < String, Double >  getField() {
        
return  field;
    }

    
public   void  setField(Map < String, Double >  field) {
        
this .field  =  field;
    }
}
    
public   static   void  main(String[] args)  throws  Exception {
    GGG ggg 
=   new  GGG();
    Field field 
=  ggg.getClass().getDeclaredField( " field " );
    field.setAccessible(
true );
    ParameterizedType pType 
=  (ParameterizedType)field.getGenericType();
    System.out.println(
" ggg.field class type = "   +  pType);
    Type[] types 
=  pType.getActualTypeArguments();
    
for ( int  i  =   0 ; i  <  types.length; i  ++ ) {
        System.out.println((i 
+   1 +   "  = "   +  types[i]);
    }
    }

 输出结果:

ggg.field  class  type  = java.util.Map < java.lang.String, java.lang.Double >
1   = class  java.lang.String
2   = class  java.lang.Double

你可能感兴趣的:(exception,String,Class,Types)