2016-03-29 3 views
0

ich eine Domain-Klasse x habe die startdate und enddate unter seinem attributes.so hat in meinem Dienst i diesen Code verwendet, um die beiden Werte zu setzen `zwei Object.date Einstellung Attribute mit einer variablen Problemen verursachen mir

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` 

aber das Problem ist, es den gleichen Wert zu geben (Monate 1 Jahr 2012) auf beiden Attribute eventhough i diffrent Wert zugewiesen.

i einen Debugger versucht, um zu sehen, warum dies geschieht und zunächst ordnet sie den richtigen Wert zu startdate aber, wenn der Wert des Datums geändert wird es ändert sich auch der Wert der startdate (in Zeile 4). Die mögliche Lösung (Workaround) ist die Erstellung von zwei Datumsvariablen, aber ich kann nicht verstehen, warum dies geschieht. kann mir jemand sagen, warum das passiert

Antwort

1

Sie haben Recht mit der Lösung. Sie benötigen separate Datumsvariablen.

Wenn Sie den StartDate- oder EndDate-Eigenschaften das Datum zuweisen, legen Sie einen Verweis auf die Datumsvariable fest. Durch den Verweis auf dieselbe Datumsvariable in beiden Eigenschaften werden alle Änderungen an der Datumsvariablen in beiden Eigenschaften widergespiegelt.

Verwandte Themen