Java 生成 setter 查询名称

Java generate setter query names

我正在构建一个实体,我需要从 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]);

问题是有50x个周期,看起来很难看,占用了很多space。

是否可以像这样将其作为 for 循环来执行:

for(int i=1; i<54; i++){
summary.setPeriod_[i]((BigDecimal)object[i+4]);
}

你应该试试这样的东西。

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) { ... }