0
点赞
收藏
分享

微信扫一扫

反射的使用-field

package test.com.channelsoft.smartdialer.util; 


import java.lang.reflect.Field;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.util.ArrayList;

import java.util.List;



/**

* 使用反射 得到数值

* //通过title 给出的字段,打印po中的数值

* @author lenovo

*

*/

public class YangllTest {


public static void main(String[] args){


ClTemplatePo po = new ClTemplatePo();

po.setCustid("custiddesc");

po.setPhonenumber1("phonenumber1desc");

po.setPhonenumber2("phonenumber2desc");

po.setPhonenumber3("phonenumber3desc");

po.setPhonenumber4("phonenumber4desc");

po.setPhonenumber5("phonenumber5desc");

po.setPhonenumber6("phonenumber6desc");



List<String> title = new ArrayList<String>();

title.add("CUSTID");

title.add("PHONENUMBER1");

title.add("PHONENUMBER2");

title.add("PHONENUMBER3");

title.add("PHONENUMBER4");

title.add("PHONENUMBER5");

title.add("PHONENUMBER6");


//通过title 给出的字段,打印po中的数值


Class<ClTemplatePo> class1 = ClTemplatePo.class;

Field[] methods = class1.getDeclaredFields();

//得到方法

for(String ti:title){

for(Field fi:methods){

if(fi.getName().equalsIgnoreCase(ti)){

try {

//允许获得private属性的数值 如果不加就只能获得public字段的数值

fi.setAccessible(true);

//调用这个对象对应的方法

String temp = (String)fi.get(po);

System.out.println(":"+temp);

} catch (IllegalArgumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}


}

}

举报

相关推荐

0 条评论