通過反射獲取和設置對象私有字段的值


/**
  * 數據字典轉換
  * @param obj
  * @return
  */
public static Object dictConvert (Object obj) {
    try {
    //得到對象的所有私有屬性
Field fields[]
= obj.getClass().getDeclaredFields();getDeclaredFields(): for (Field field : fields) {
//獲得注解 FieldRemark fieldRemark
= field.getAnnotation(FieldRemark.class); if (fieldRemark != null && StringUtils.isNotBlank(fieldRemark.dictType())) {
                 //如果accessible標志被設置為true,那么反射對象在使用的時候,不會去檢查Java語言權限控制(如private);
field.setAccessible(
true);
//field.get(obj)為獲取屬性值 String dictVal
= DictUtils.getDictLabel(field.get(obj).toString(),fieldRemark.dictType(), ""); field.setAccessible(true);
//通過反射給指定字段賦值 field.set(obj, dictVal); } } }
catch (IllegalAccessException e) { e.printStackTrace(); } return obj; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM