今天在使用下列方法将对象转MAP的时候发现转换的map sj3e=0.0,而不是实际get方法获得的值;
public static Map<String,String> obj2Map(Object obj){
Map<String,String> map =new HashMap<String, String>();
Field[] fields = obj.getClass().getDeclaredFields();
for(int i = 0;i < fields.length;i++){
String varName = fields[i].getName();
try{
boolean accessFlag = fields[i].isAccessible();
fields[i].setAccessible(true);
Object o = fields[i].get(obj);
if(o != null){
map.put(varName, o.toString());
}
fields[i].setAccessible(accessFlag);
}catch(IllegalArgumentException ex){
}catch(IllegalAccessException ex){
}
}
return map;
}
private Double sj3e=0.0;
public Double getSj3e() {
if(null==sj3) sj3=0.0;
return Arith.mul(sj3,sl);
}
后面我使用了下面方法来修复它
mx.setSj3e(mx.getSj3e());