根据属性名获取属性值
/**
* 根据属性名获取属性值
* */
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;
}
}
根据属性名设置属性值
/**
* 通过反射写一个类,类中有个方法。
* 该方法可以设置某个类中的某个属性(构造方法,成员变量,成员方法)为特定的值
* @param obj
* @param fieldName
* @param value
*/
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) {
System.out.println(e.getMessage());
}
}获取属性名数组
/**
* 获取属性名数组
* */
private String[] getFiledName(Object o){
Field[] fields=o.getClass().getDeclaredFields();
String[] fieldNames=new String[fields.length];
for(int i=0;i<fields.length;i++){
System.out.println(fields[i].getType());
fieldNames[i]=fields[i].getName();
}
return fieldNames;
}
学习参考:
版权声明:本文为qq_37552636原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。