Java Field.getType()返回一个Class对象
Java Field.getType()获取属性声明时类型对象,它标识了此Field对象所表示字段的声明类型。
定义
public Class<?>getType() 返回一个Class 对象,它标识了此 Field 对象所表示字段的声明类型。
返回:标识此对象所表示字段的声明类型的 Class 对象
例子
public class FieldSpy<T> extends BaseTestClass { public boolean[][] b = {{true, true}, {false, false}}; public String name = "shixinzhang"; public Integer integer = 23; public T type; public static final String CLASS_NAME = "net.sxkeji.shixinandroiddemo2.test.reflection.FieldSpy"; public static void main(String[] args) { try { Class<?> aClass = Class.forName(CLASS_NAME); Field[] fields = aClass.getFields(); for (Field field : fields) { printFormat("Field:%s \n",field.getName()); printFormat("Type:\n %s\n", field.getType().getCanonicalName()); printFormat("GenericType:\n %s\n", field.getGenericType().toString()); printFormat("\n\n"); } } catch (ClassNotFoundException e) { e.printStackTrace(); } } }
运行结果:
Field:b //二维的布尔值数组 Type: boolean[][] GenericType: class [[Z Field:name Type: java.lang.String GenericType: class java.lang.String Field:integer Type: java.lang.Integer GenericType: class java.lang.Integer Field:type //泛型 T 类型,运行时被擦除为 Object Type: java.lang.Object GenericType: T Field:CLASS_NAME Type: java.lang.String GenericType: class java.lang.String Process finished with exit code 0
总结
getType()返回的是Class对象,如果属性是一个泛型,从getType()只能得到这个属性的接口类型。
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。