public class test{ public static void main(String[] arg){ int num=0; BigDecimal tatalPrice=BigDecimal.ZERO; for(int i=1;i<=31;i++){ try { BigDecimal price=getStringProperty(ro, "price" + i); if(!ObjectUtils.isEmpty(price)){ tatalPrice =tatalPrice.add(price); num+=1; } } catch (Exception e) { e.printStackTrace(); } } } // 获取bean的某个属性值 private BigDecimal getStringProperty(SrmPurMaterialPriceLineVO priceLineVO, String fieldName) throws Exception { // 获取Bean的某个属性的描述符 PropertyDescriptor proDescriptor = new PropertyDescriptor(fieldName, SrmPurMaterialPriceLineVO.class); // 获得用于读取属性值的方法 Method methodGet = proDescriptor.getReadMethod(); // 读取属性值 Object objValue = methodGet.invoke(priceLineVO); if (ObjectUtils.isEmpty(objValue) || "null".equals(objValue)){ return null; }else { BigDecimal price=new BigDecimal(String.valueOf(objValue)); return price; } } }
JAVA 利用反射拼接字段(如:price与1、2、3、4拼成四个字段price1、price2、price3、price4)