import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
/**
* 〈一句话功能简述〉<br>
* 〈反射获取值〉
*
* @author zhoukai7
* @create 7/29/18
* @since 1.0.0
*/
public class ReflecFetchAttr {
/**
* 得到属性值
*
* @param obj
*/
public static Map<String, Object> getAttributeValue(Object obj) {
Map<String, Object> map = new HashMap<String, Object>();
Class cls = obj.getClass();
Field[] fields = cls.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
try {
// 得到属性
Field field = fields[i];
// 允许访问私有属性
field.setAccessible(true);
// 获取属性
String name = field.getName();
// 获取属性值
Object value = field.get(obj);
map.put(name, value);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return map;
}
/**
* 得到属性值
*
* @param obj
*/
public static Map<String, Object> getAttributeValueSide(Object obj) {
Map<String, Object> map = new HashMap<String, Object>();
Class cls = obj.getClass();
Field[] fields = cls.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
try {
// 得到属性
Field field = fields[i];
// 允许访问私有属性
field.setAccessible(true);
// 获取属性
String name = field.getName();
// 获取属性值
Object value = field.get(obj);
map.put(String.valueOf(value), name);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return map;
}
}