本文介绍了Groovy:如何在setProperty()中设置属性并避免无限递归?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to implement a domain class that records when any property's value was changed, but my setProperty() call results in infinite recursion when setting the actual value.

这是它现在的样子:

This is how it looks right now:

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

属性给定其名称而不触发递归 setProperty()调用?或者有什么不同的方式来实现我的目标?

So how can I access a property given its name without triggering a recursive setProperty() call? Or is there a different way to achieve my goal?

推荐答案

试试:

this.@"$name" = value

(请参阅)

这篇关于Groovy:如何在setProperty()中设置属性并避免无限递归?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-13 12:58