java 遍历根类属性

public static Map<String, Object> encapsulatMap(Object obj) {
if (null == obj) {
LOG.error("封装对象对于的map对象出现空对象情况");
return null;
}
Map<String, Object> map = new HashMap<String, Object>();
try {
Class clz = obj.getClass();
while (clz != null) {
Field fields[] = clz.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
// 只使用子类的键值对,父类的相同键值对忽略
if (!map.containsKey(field.getName())) {
map.put(field.getName(), field.get(obj));
}
}
// 遍历获取根类
clz = clz.getSuperclass();
}
} catch (IllegalArgumentException e) {
LOG.error("根据对象封装map对象出现错误", e);
} catch (IllegalAccessException e) {
LOG.error("根据对象封装map对象出现错误", e);
}
return map;
}

猜你喜欢

转载自blog.csdn.net/xiyuhanfei/article/details/84624692