展开全部
看了下你好像需要set和get方法,如果你知道属性的名字的话不需要遍历可以这样获取,这个是我以前的demo的一个32313133353236313431303231363533e58685e5aeb931333332633561片段:Class clazz=Class.forName("com.demo.reflectdemo.Student");
Object obj=clazz.newInstance();
Field fields[]=clazz.getDeclaredFields();
for(int i=0;i
{
PropertyDescriptor pd=new PropertyDescriptor(fields[i].getName(), clazz);
Method method=pd.getWriteMethod();
Class type=pd.getPropertyType();
System.out.println(type.getName());
if(type.equals(int.class)){
int id=1;
method.invoke(obj, id);
}
else if(type.equals(String.class)){
method.invoke(obj,"张三");
}
}
主要是这里
PropertyDescriptor pd=new PropertyDescriptor(fields[i].getName(), clazz);
Method method=pd.getWriteMethod();
这样就能获取get方法了,再调用invoke就行了