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