1、通過反射獲取對象的字段值
public static long getObjectValueByEnumField(String fieldName, Object object, Class<?> clazz) { try { //獲取字段 Field field = clazz.getDeclaredField(HumpTranUtil.lineToHump(fieldName)); PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz); //獲取get方法 Method getMethod = pd.getReadMethod(); Object valueObj = ReflectionUtils.invokeMethod(getMethod, object); return valueObj == null ? 0 : Long.valueOf(valueObj.toString()); } catch (Exception e) { log.info("通過反射根據字段名稱獲取對應字段的值出錯,fielaName={}", fieldName, e); return 0; } }
2、通過反射設置對象字段的值
public static void setObjValueByEnumField(Object object, Class<?> clazz, String fieldName, long value) { try { //獲取字段 Field field = clazz.getDeclaredField(HumpTranUtil.lineToHump(fieldName)); field.setAccessible(true); field.set(object, value); field.setAccessible(false); } catch (Exception e) { log.info("通過反射根據字段名稱設置對應字段的值出錯,fieldName={}|value={}", fieldName, value, e); } }