JAVA-LocalDate.plusDay()无法正常工作 [英] JAVA - LocalDate.plusDay() doesn't work properly

查看:131
本文介绍了JAVA-LocalDate.plusDay()无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一种方法,该方法将属于某个trainingCycle的训练添加到日历中.我可能犯了一个错误,因为它只将一天的所有培训都增加了.

I want to create method thatd add trainings which belongs to some trainingCycle to calendar. Problably I made some mistake becouse it's adding all trainings to only one day.

TrainingCycle模型类:

TrainingCycle model class:

@DynamoDBTable(tableName = "trainingCycle")
public class TrainingCycle extends Request {
private String id;
private String cycleName;
private Long cycleTime;
private LocalDateTime startTime;
private List<List<Training>> trainingsForDay;

培训模型课程:

@DynamoDBTable(tableName = "training")
@DynamoDBDocument
public class Training extends Request {

private String id;
private String trainingName;
private Integer predictedCaloriesToBurn;
private Integer burnedCalories;
private LocalDateTime startTime;
private LocalDateTime endTime;
private List<Exercise> exerciseList;
private List<TrainingLabels> trainingLabels;
private boolean approved;
private ActivityDay activityDay;

AddTrainingCycle方法:

AddTrainingCycle method:

    public List<Day> addTrainingCycle(String userId, TrainingCycle trainingCycle, LocalDate localDate) {

    List<Day> days = new ArrayList<>();
    for (List<Training> trainings : trainingCycle.getTrainingsForDay()) {
        if (trainings == null || trainings.isEmpty()) {
            localDate.plusDays(1);
        } else {
            Day actualDay = getActivityBoardDay(localDate, userId);
            actualDay.getTrainings().addAll(trainings);
            localDate.plusDays(1);
            days.add(actualDay);
        }
    }
    return days;
}

我已经创建了测试方法,正如我所说的-它添加了所有培训,但自争论以来仅一天,它并没有增加LocalDate.有人可以帮我吗?

I've created test method and as I said - it's adding all of trainings but only for one day from argument, it's not increasing LocalDate. Can someone help me with that?

推荐答案

LocalDate是不可变的.

localDate.plusDays(1)不会修改当前的localDate.它返回的新值是当前日期加一个.

localDate.plusDays(1) does not modify the current localDate. It returns the new value which is current date plus one.

您必须重新分配它:

localDate = localDate.plusDays(1);

这篇关于JAVA-LocalDate.plusDay()无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆