private static Map<String, Object> obj2Map(Object obj) {
Map<String, Object> map = new HashMap<String, Object>();
// System.out.println(obj.getClass());
// 获取f对象对应类中的所有属性域
Field[] fields = obj.getClass().getDeclaredFields();
for (int i = 0, len = fields.length; i < len; i++) {
String varName = fields[i].getName();
// varName = varName.toLowerCase();//将key置为小写,默认为对象的属性 (为保证属性原样,注释掉本行)
try {
// 获取原来的访问控制权限
boolean accessFlag = fields[i].isAccessible();
// 修改访问控制权限
fields[i].setAccessible(true);
// 获取在对象f中属性fields[i]对应的对象中的变量
Object o = fields[i].get(obj);
if (o != null)
map.put(varName, o.toString());
// System.out.println("传入的对象中包含一个如下的变量:" + varName + " = " + o);
// 恢复访问控制权限
fields[i].setAccessible(accessFlag);
} catch (IllegalArgumentException ex) {
ex.printStackTrace();
} catch (IllegalAccessException ex) {
ex.printStackTrace();
}
}
return map;
Map<String, Object> map = new HashMap<String, Object>();
// System.out.println(obj.getClass());
// 获取f对象对应类中的所有属性域
Field[] fields = obj.getClass().getDeclaredFields();
for (int i = 0, len = fields.length; i < len; i++) {
String varName = fields[i].getName();
// varName = varName.toLowerCase();//将key置为小写,默认为对象的属性 (为保证属性原样,注释掉本行)
try {
// 获取原来的访问控制权限
boolean accessFlag = fields[i].isAccessible();
// 修改访问控制权限
fields[i].setAccessible(true);
// 获取在对象f中属性fields[i]对应的对象中的变量
Object o = fields[i].get(obj);
if (o != null)
map.put(varName, o.toString());
// System.out.println("传入的对象中包含一个如下的变量:" + varName + " = " + o);
// 恢复访问控制权限
fields[i].setAccessible(accessFlag);
} catch (IllegalArgumentException ex) {
ex.printStackTrace();
} catch (IllegalAccessException ex) {
ex.printStackTrace();
}
}
return map;
}
public static void main(String[] args) throws Exception {
EdasCommon edasCommon = new EdasCommon();
edasCommon.setD_Ou(1.1);
edasCommon.setDomain("string");
edasCommon.setFl(1.2f);
edasCommon.setInTe(0);
edasCommon.setTAG(false);
Map<String, Object> obj2Map = obj2Map(edasCommon);
System.out.println(obj2Map);
}
integer、string、double、float、boolean类型,属性名大小写都可以