Groovy - 有没有办法让对象返回自己?

时间:2015-12-02 22:59:54

标签: groovy jenkins self-reference loopback

我们说我在groovy中有一些名为obj的对象。是否有一个我可以在obj上调用的默认方法或属性将返回给我回到那个对象?例如:

def obj = new Whatever()
assert obj == obj.self

上下文 我在Jenkins中定义的ClosureScript类的上下文中编写脚本。这是Script类的扩展,允许委派类型的工作流。不幸的是,它只是将getProperty()和invokeMethod()调用转发给委托,它没有公开对委托对象本身的直接引用。因此,自引用属性/方法将允许我获得该引用。

1 个答案:

答案 0 :(得分:1)

所以我最终找到了一种方法来做到这一点。在默认的groovy方法中,有一些方法可以有效地转换为无操作。例如:

assert obj == obj.find()
assert obj == obj.each{it}

都会过去。

不幸的是,这实际上并没有解决我原来的问题。我正在使用的Script类中的委托策略最终在委托之前首先调用脚本上的默认方法。这确实回答了我提出的问题,所以我只是关闭它并继续前进。