Java 8 在使用Java8迭代列表时,如何将日期动态添加到deliverydate?

Java 8 在使用Java8迭代列表时,如何将日期动态添加到deliverydate?,java-8,Java 8,我正在研究发货日期。因为我们根据邮政编码有交货日期。我必须检查假期日期和交货日期的列表,如果交货日期是在假期,我应该在该日期后再加一天并显示。我试过了,但还是没办法解决。它不会返回正确的值 这就是我尝试过的我不知道为什么我会被否决 List<Date>dateList=xyzService.getAllHolidays();//list of date from the service dateList.forEach(date -> { if (DateUtils.i

我正在研究发货日期。因为我们根据邮政编码有交货日期。我必须检查假期日期和交货日期的列表,如果交货日期是在假期,我应该在该日期后再加一天并显示。我试过了,但还是没办法解决。它不会返回正确的值

这就是我尝试过的我不知道为什么我会被否决

List<Date>dateList=xyzService.getAllHolidays();//list of date from the service
dateList.forEach(date -> {
    if (DateUtils.isSameDay(date,expectedDeliveryDate.toDate())){
        expectedDeliveryDate.plusDays(1);
    }

});
ListdateList=xyzService.getAllHolidays()//服务的日期列表
dateList.forEach(日期->{
if(DateUtils.isSameDay(日期,expectedDeliveryDate.toDate()){
预期交货期为每周四(1);
}
});
在上面的代码中,由于它是不可变的,所以没有得到更新。 我需要检查假期和交货日期


对于例如如果expectedDeliveryDate是今天如果今天(2016年5月31日)和明天(2016年6月1日)在假期列表中,我应该得到2016年6月2日的
expectedDeliveryDate

这就是我解决问题的方法:

 for (Date date:dateList){
            if (DateUtils.isSameDay(date,expectedDeliveryDate.toDate())){
                expectedDeliveryDate=expectedDeliveryDate.plusDays(1);
            }
        }

新的java时间类是不可变的。调用
plusDays(1)
不会更改现有对象。它返回新对象,并添加1天。我不确定您要完成什么,所以我只能给您一些一般性的指导。你要打印多少次日期?您当前的代码将打印它,打印次数与节假日相同。@Misha我知道,但我必须更新并检查日期。如果我再增加一天,我们应该检查是否有假期?你到底想做什么,为什么要使用
forEach
?当然,您希望做的不仅仅是打印日期,对现有代码进行最少的修改,如:(代码:日期:DATELIST){if(…){ExpRealValueDeal= ExpDealDelphi日期。PLUSYES(1);}} /Case>但您确实应该避免<代码>日期>代码>类,并考虑迁移到<代码> java。