Groovy:如何在setProperty()中设置属性并避免无限递归?

Mic*_*rdt 5 groovy metaprogramming

我正在尝试实现一个域类,该类记录何时更改任何属性的值,但是setProperty()在设置实际值时,我的调用会导致无限递归.

这就是它现在的样子:

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

那么如何在不触发递归setProperty()调用的情况下访问给定名称的属性呢?或者有不同的方法来实现我的目标?