我正在构建一个实体,我需要从jpql结果集中填充结果集中的所有字段,如下所示:
summary.setPeriod_1((BigDecimal)object[4]);
summary.setPeriod_2((BigDecimal)object[5]);
summary.setPeriod_3((BigDecimal)object[6]);
summary.setPeriod_4((BigDecimal)object[7]);
问题在于有50倍的时期,它看起来很丑陋,占用了大量的空间。
是否可以将其作为这样的for循环:
for(int i=1; i<54; i++){
summary.setPeriod_[i]((BigDecimal)object[i+4]);
}
答案 0 :(得分:1)
你应该尝试一下这样的事情。
java.lang.reflect.Method method;
try {
for(int i=1; i<54; i++){
method = summary.getClass().getMethod("setPeriod_"+i, BigDecimal.class);
method.invoke(summary, object[i]);
}
} catch (SecurityException e) { ... }
catch (NoSuchMethodException e) { ... }
catch (IllegalArgumentException e) { ... }
catch (IllegalAccessException e) { ... }
catch (InvocationTargetException e) { ... }