2010-01-15 3 views
5

Ich versuche, eine Domänenklasse zu implementieren, die aufzeichnet, wenn der Wert einer Eigenschaft geändert wurde, aber mein setProperty()-Aufruf führt zu einer unendlichen Rekursion, wenn der tatsächliche Wert festgelegt wird.Groovy: Wie setze ich eine Eigenschaft in setProperty() und vermeide unendliche Rekursion?

Dies ist, wie es jetzt aussieht:

void setProperty(String name, value) 
{ 
    if(name == "modified") 
    { 
     this.modified = value 
     return 
    } 
    else 
    { 
     if(this[name]==value) 
     { 
      return 
     } 
     this.modified = true 
     this[name]=value 
    } 
} 

Wie kann ich eine Unterkunft gegeben Zugriff auf seinen Namen Anruf ohne Auslösen eines rekursiven setProperty()? Oder gibt es einen anderen Weg, um mein Ziel zu erreichen?

Antwort

8
+0

dieses @ Name eine bestimmte Eigenschaft zugreifen würde, aber ich brauche die generischen Zugriff basierend auf Eigenschaftsnamen.. Ich habe deine Antwort auf das geändert, woran ich jetzt arbeite. Seltsamerweise hatte ich den @ Operator bereits gefunden und probiert. Ich vermute, dass Netbeans noch den vorherigen Code ausgeführt hat (es ist wirklich so schlecht). –

+0

Ausgezeichnet. Froh, dass es für dich funktioniert hat. –

Verwandte Themen