要获得 getter,请考虑使用自省而不是反射:它就是为此目的!
这是一个自动获取getter的代码。当心,你也会得到“getClass()”getter!
for(PropertyDescriptor descriptor :Introspector.getBeanInfo(A.class).getPropertyDescriptors()){
System.out.println("Getter method :" + descriptor.getReadMethod());
System.out.println("Return type : " + descriptor.getReadMethod().getReturnType());
Class<?> c=descriptor.getReadMethod().getReturnType();
}
}
输出 :
Getter method :public final native java.lang.Class java.lang.Object.getClass()
Return type : class java.lang.Class
Getter method :public java.util.Date A.getDate()
Return type : class java.util.Date
Getter method :public java.lang.String A.getName()
Return type : class java.lang.String
Getter method :public java.lang.Integer A.getNumber()
Return type : class java.lang.Integer
然后,您可以轻松地为每个 getter 创建一个字段。对于泛型类型,它在运行时并没有真正意义,但仍然可以在代码生成器中使用它......