今天做报表,有两个int属性的bean要加起来,用了一段java的反射
static public Complainfrequency sumComplainfrequency(Complainfrequency complainfrequency,Complainfrequency addComplainfrequency){
Complainfrequency sumComplainfrequency = new Complainfrequency();
int sumFrequency = 0;
Field fields[] = complainfrequency.getClass().getDeclaredFields();
for(Field field:fields){
try {
Method getFieldMethod = complainfrequency.getClass().getDeclaredMethod("get"+getbigStr(field.getName()));
Method setFieldMethod = complainfrequency.getClass().getDeclaredMethod("set"+getbigStr(field.getName()),field.getType());
Object frequency = getFieldMethod.invoke(complainfrequency);
Object addFrequency = getFieldMethod.invoke(complainfrequency);
if((frequency instanceof Integer)||(addFrequency instanceof Integer)){
sumFrequency = ((Integer)frequency).intValue() + ((Integer)addFrequency).intValue();
}
setFieldMethod.invoke(sumComplainfrequency, (Object)sumFrequency);
} catch (Exception e) {
e.printStackTrace();
}
}
return sumComplainfrequency;
}
private static String getbigStr(String str){
String ns = "";
ns = str.substring(0, 1).toUpperCase()+str.substring(1,str.length());
return ns;
}
请大家多多指点