將List集合中,含有BigDeciam字段求和


  該方法采用反射創建對象,並進行賦值,將List<T>,中含有BigDecimal字段的值求和,並賦值到新的對象中對應的字段上。

  代碼如下:

 @SneakyThrows
    public static <T> T convertListValueToObjectValue(List responses, Class<T> clazz) {
        Object object = clazz.newInstance();
        Class<?> aClass = object.getClass();
        Field[] declaredFields = aClass.getDeclaredFields();
        for (Field declaredField : declaredFields) {
            if ("java.math.BigDecimal".equals(declaredField.getType().getName())) {
                declaredField.setAccessible(true);
                for (Object row : responses) {
                    Field[] rowFields = row.getClass().getDeclaredFields();
                    for (Field rowField : rowFields) {
                        if ("java.math.BigDecimal".equals(rowField.getType().getName()) && rowField.getName().equals(declaredField.getName())) {
                            rowField.setAccessible(true);
                            BigDecimal tem = (BigDecimal) rowField.get(row);
                            BigDecimal dst = (BigDecimal) declaredField.get(object);
                            declaredField.set(object, tem.add(dst));
                        }
                    }
                }
            }
        }
        return (T) object;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM