使用一个变量设置两个 Object.date 属性导致我出现问题

setting two Object.date attributes with one variable causing me problems

我有一个域 class x,在我的服务中 attributes.so 中有 startdateenddate我用这段代码来设置两个值 `

    def date = new Date()

    date.set(hourOfDay: 12, minute: 0, second: 0, year: 2012 , month: 0, date: 1)

    x.startDate = date

    date.set(hourOfDay: 12, minute: 0, second: 0, year: 12 , month: 11, date: 30)

    x.endDate = date`

但问题是它给两个属性相同的值(2012 年 1 月),尽管我为它们分配了不同的值。

我尝试使用调试器来查看为什么会发生这种情况,起初它为 startdate 分配了正确的值,但是当 date 的值被更改时,它也会更改 date 的值开始日期第 4 行)。可能的解决方案(解决方法)是创建两个日期变量,但我似乎无法理解为什么会这样。谁能告诉我为什么会这样

您的解决方案是正确的。您需要单独的日期变量。

当您将日期分配给 startDate 或 endDate 属性时,您正在设置对日期变量的引用。通过在两个属性中引用相同的日期变量,对日期变量的任何更改都会反映在两个属性中。