反射的使用-field

    xiaoxiao2021-12-14  18

    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(); } } } } } }
    转载请注明原文地址: https://ju.6miu.com/read-965224.html

    最新回复(0)