我有一个域类x,其属性中包含 startdate 和 enddate 。在我的服务中,我使用此代码设置了两个值 `
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`
但问题是它为两个属性提供相同的值( 1月1日),尽管我为它们指定了不同的值。
我尝试使用调试器来查看为什么会发生这种情况,并且首先它会为 startdate 分配正确的值,但是当更改date的值时,它也会更改 startdate <的值/ strong>(第4行)。可能的解决方案(解决方法)是创建两个日期变量,但我似乎无法理解为什么会发生这种情况。有人可以告诉我为什么会这样吗
答案 0 :(得分:1)
你的解决方案是正确的。您需要单独的日期变量。
将日期分配给startDate或endDate属性时,您将设置对日期变量的引用。通过在两个属性中引用相同的日期变量,对日期变量的任何更改都会反映在两个属性中。