private <T> List<T> addZeroToDay(List<T> list, LocalDate startDate, LocalDate endDate, Class<T> t) throws Exception {
List<LocalDate> existedDateList = new ArrayList<>();
for (Object object : list) {
Field field = object.getClass().getDeclaredField("date");
field.setAccessible(true);
LocalDate day = (LocalDate) field.get(object);
existedDateList.add(day);
}
//根据开始和结束时间遍历每一天生成数组
long distance = ChronoUnit.DAYS.between(startDate, endDate.minusDays(1));
List<LocalDate> allDatelist = new ArrayList<>();
Stream.iterate(startDate, date -> date.plusDays(1)).limit(distance + 1).forEach(day -> allDatelist.add(day));
for (LocalDate date : allDatelist) {
if (!existedDateList.contains(date)) {
// if (t.getName().equals(SuccesOrderPayTypeStatistics.class.getName())) {
// SuccesOrderPayTypeStatistics succesOrderPayTypeStatistics = new SuccesOrderPayTypeStatistics(date, 0, 0, 0, 0, 0);
// list.add(t.cast(succesOrderPayTypeStatistics));
// } else if (t.getName().equals(SuccessOrderMoneyStatistic.class.getName())) {
// SuccessOrderMoneyStatistic successOrderMoneyStatistic = new SuccessOrderMoneyStatistic(date, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO);
// list.add(t.cast(successOrderMoneyStatistic));
//
// }
T t1 = t.newInstance();
Field declaredField = t.getDeclaredField("date");
declaredField.setAccessible(true);
declaredField.set(t1, date);
list.add(t1);
}
}
return list;
}
使用泛型传入不同的类 作为方法的参数
最新推荐文章于 2023-01-15 22:44:57 发布