j**a invoke 反射的使用方法

时间:2013.04.02 发布人:lihui2599

j**a invoke 反射的使用方法

已解决问题

谷歌lihui2599用户在2013.04.02提交了关于“x战警j**a invoke 反射的使用方法”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-08-21T21:58:54。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,没有什么华丽的语言,但是我对你的感谢不会减少 !

希望以下的回答,能够帮助你。

第1个回答

用户名:p编来刚氧玉阳eijie216  

你这个类是一个严格的J**aBean格式。。所以先可以获得属性。。然后获得读写方法。。然后写值。。读值。。hibernate其实也就是采用的这种差不多的方式。。


importj**a.beans.PropertyDescriptor;
importj**a.lang.reflect.Field;
importj**a.lang.reflect问答.Method;

publicclassReflectTest{

/**
*@paramargs
*/
publicstaticvoidmain(String[]args)throwsException{
Classclazz=Class.forName("TaskProvidePropsList");//这里的类名是全名。。有包的话要加上包名
Objectob拉算j=clazz.newInstance();
Field[]fields=clazz.getDeclare责本多倍斗导政比dFields();
//房苦站严写**
for(Fieldf:fields){
PropertyDescriptorpd=newPropertyDescripto搞米析套弱字历假r(f.getName(),clazz);
MethodwM=pd.getWriteMethod();//获得写方法
wM.但举源invoke(obj,坐距根江画2);//因为知道是int类型的属性,所以传个int过去就是了。。实际情况中需要判断下他的参数类阿灯黄型
}
//读**
for(Fieldf:fields){
PropertyDescriptorpd=newPropertyDescriptor(f.getName(),clazz);
Metho学治色律宪燃渐drM=pd.getReadMethod();//获得读方法
Integer**m=(Integer)rM.invoke(obj);//因为知道是int类型的属性,所以转换成integer就是了。。也可以不转换直接打印
System.out.println(**m);
}
}

}