Java利用反射获取对象的属性和值代码示例

  

在看反射顺便做个笔记,目前知道的反射的对象都是要有对象的也就是实体Bean。

  参考

<强>: <强> Java反射简易教程

        进口java.lang.reflect.Field;   进口java.util.ArrayList;   进口java.util.HashMap;   进口并不知道;   进口java.util.Map;/* *   *反射处理Bean,得到里面的属性值   *   * @author liulinsen   *   */公开课ReflexObjectUtil {/* *   *单个对象的所有键值   *   * @param对象   *单个对象   *   * @return Map<字符串,Object>地图所有字符串键对象值例:{pjzyfy=0.00,   * xh=1, zzyl=0.00, mc=住院患者压疮发生率,pjypfy=0.00, rs=0, pjzyts=0.00,   * czydm=0037 lx=921, zssl=0.00}   */公共静态Map<字符串,Object>getKeyAndValue(对象obj) {   Object> Map<字符串;地图=new HashMap<字符串,Object> ();//得到类对象   类userCla=(类)obj.getClass ();/*得到类中的所有属性集合*/场[]fs=userCla.getDeclaredFields ();   for (int i=0;我& lt;fs.length;我+ +){   场f=f(我);   f.setAccessible(真正的);//设置些属性是可以访问的   对象val=新对象();   尝试{   val=f.get (obj);//得到此属性的值   map.put (f.getName (), val);//设置键值   }   抓住(IllegalArgumentException e) {   e.printStackTrace ();   }   抓住(IllegalAccessException e) {   e.printStackTrace ();   }/*   *字符串类型=f.getType () .toString();//得到此属性的类型   * (type.endsWith(“字符串”)){   * System.out.println (f.getType () + " \ t是字符串");f.set (obj,“12”);   *//给属性设值}else if (type.endsWith (int) | |   * type.endsWith(整数)){   * System.out.println (f.getType () + " \ t是int ");f.set (obj, 12);//给属性设值   *其他}{System.out.println (f.getType () +“t \”);}   */}   system . out。println(“单个对象的所有键值==反射==" + map.toString ());   返回地图;   }/* *   *单个对象的某个键的值   *   * @param对象   *对象   *   * @param关键   *键   *   * @return对象键在对象中所对应得值没有查到时返回空字符串   */公共静态对象getValueByKey(对象obj,字符串键){//得到类对象   类userCla=(类)obj.getClass ();/*得到类中的所有属性集合*/场[]fs=userCla.getDeclaredFields ();   for (int i=0;我& lt;fs.length;我+ +){   场f=f(我);   f.setAccessible(真正的);//设置些属性是可以访问的   尝试{   如果(f.getName () .endsWith(关键)){   system . out。println(“单个对象的某个键的值==反射==" + f.get (obj));   返回f.get (obj);   }   }   抓住(IllegalArgumentException e) {   e.printStackTrace ();   }   抓住(IllegalAccessException e) {   e.printStackTrace ();   }   }//没有查到时返回空字符串   返回";   }/* *   *多个(列表)对象的所有键值   *   * @param对象   * @return List比;列表中所有对象的所有键值例:[{pjzyfy=0.00, xh=1,   * zzyl=0.00, mc=住院患者压疮发生率,pjypfy=0.00, rs=0, pjzyts=0.00,   * czydm=0037 lx=921, zssl=0.00}, {pjzyfy=0.00, xh=02 zzyl=0.00,   * mc=新生儿产伤发生率,pjypfy=0.00, rs=0, pjzyts=0.00, czydm=0037, lx=13,   * zssl=0.00}, {pjzyfy=0.00, xh=03 zzyl=0.00, mc=阴道分娩产妇产伤发生率,   * pjypfy=0.00, rs=0, pjzyts=0.00, czydm=0037, lx=0, zssl=0.00},   * {pjzyfy=0.00, xh=04 zzyl=0.75, mc=输血反应发生率,pjypfy=0.00, rs=0,   * pjzyts=0.00、czydm=0037 lx=0, zssl=0.00}, {pjzyfy=5186.12,   * xh=5日zzyl=0.00, mc=剖宫产率,pjypfy=1611.05, rs=13, pjzyts=7.15,   * czydm=0037 lx=13日zssl=0.00}]   */公共静态List比;getKeysAndValues (List对象){   List比;列表=new ArrayList在();   (对象obj:对象){   类userCla;//得到类对象   userCla=(类)obj.getClass ();/*得到类中的所有属性集合*/场[]fs=userCla.getDeclaredFields ();   Object> Map<字符串;listChild=new HashMap<字符串,Object> ();   for (int i=0;我& lt;fs.length;我+ +){   场f=f(我);   f.setAccessible(真正的);//设置些属性是可以访问的   对象val=新对象();   尝试{   val=f.get (obj);//得到此属性的值   listChild.put (f.getName (), val);//设置键值   }   抓住(IllegalArgumentException e) {   e.printStackTrace ();   }   抓住(IllegalAccessException e) {   e.printStackTrace ();   }   }   list.add (listChild);//将地图加入到集列表合中   }   system . out。println(“多个(列表)对象的所有键值====" + list.toString ());   返回列表;   }/* *   *多个(列表)对象的某个键的值   *   * @param对象   * @param关键   * @return List

Java利用反射获取对象的属性和值代码示例

Copyright © 2020-2023 feiqueyun.cn. All Rights Reserved. 肥雀云_南京肥雀信息技术有限公司版权所有 南京肥雀信息技术有限公司 苏ICP备16063723号-5