java反射得到字段值

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;
}
}

猜你喜欢

转载自zhangjijun.iteye.com/blog/1522862