public final class ReflectFieldValueUtil {
private ReflectFieldValueUtil() {
}
/**
* 根据字段名得到实例的字段值
*
* @param object
* 实例对象
* @param fieldName
* 字段名称
* @return 实例字段的值,如果没找到该字段则返回null
* @throws IllegalAccessException
*/
public static Object getFieldValue(Object object, String fieldName)
throws IllegalAccessException {
Set<Field> fields = new HashSet<Field>();
// 本类中定义的所有字段
Field[] tempFields = object.getClass().getDeclaredFields();
for (Field field : tempFields) {
field.setAccessible(true);
fields.add(field);
}
// 所有的public字段,包括父类中的
tempFields = object.getClass().getFields();
for (Field field : tempFields) {
fields.add(field);
}
for (Field field : fields) {
if (field.getName().equals(fieldName)) {
return field.get(object);
}
}
return null;
}
}