java 根据 对象 属性名称 获取/设置属性值
一、根据属性名设置属性值
public static void setFieldValueByName(Object obj, String fieldName, Object value){ try { // 获取obj类的字节文件对象 Class c = obj.getClass(); // 获取该类的成员变量 Field f = c.getDeclaredField(fieldName); // 取消语言访问检查 f.setAccessible(true); // 给变量赋值 f.set(obj, value); } catch (Exception e) { logger.info(e.getMessage()); } }
二、根据属性名获取属性值
/** * 根据属性名获取属性值 * */ private Object getFieldValueByName(String fieldName, Object o) { try { String firstLetter = fieldName.substring(0, 1).toUpperCase(); String getter = "get" + firstLetter + fieldName.substring(1); Method method = o.getClass().getMethod(getter, new Class[] {}); Object value = method.invoke(o, new Object[] {}); return value; } catch (Exception e) { log.error(e.getMessage(),e); return null; } }
让每一天过的有意义!