| package com.shentb.hmb.utils; import java.lang.reflect.Field; import java.lang.reflect.Method; public class ReflexUtils {     /**      * 反射根據(jù)屬性名獲取屬性值      *      * @param fieldName  屬性名      * @param object 實體類對象      * @return      */     public static Object getFieldValueByFieldName(String fieldName, Object object) {         try {             Field field = object.getClass().getDeclaredField(fieldName);             //設置對象的訪問權限,保證對private的屬性的訪問             field.setAccessible(true);             return  field.get(object);         } catch (Exception e) {             e.printStackTrace();             return null;         }     }     /**      * 通過反射設置屬性的值      * @param fieldName  屬性名      * @param fieldValue  屬性值      * @param object  實體類對象      * @param parameterTypes  設置屬性值的類型      * @throws      */     public static void setFieldValueByFieldName(String fieldName,Object fieldValue,Object object,Class<?>... parameterTypes) {         try {             Field[] fields = object.getClass().getDeclaredFields();             for(int i=0;i<fields.length;i++){                 Field field = fields[i];                 //字段名稱                 String name = field.getName();                 if(name.equals(fieldName)){                     field.setAccessible(true);                     //field.set(object,fieldValue) 可代替下面的拼接set方法;                     //將屬性的首字符大寫,方便構造get,set方法                     String methname = name.substring(0,1).toUpperCase()+name.substring(1);                     Method m = object.getClass().getMethod("set" + methname,parameterTypes);                     m.invoke(object,fieldValue);                 }             }         }catch (Exception e){             e.printStackTrace();         }     } } | 
|  |