2015-12-02 71 views
0

比方说,我在groovy中有一些名为obj的对象。是否有一个默认的方法或属性,我可以调用obj将返回给我回该对象?例如:Groovy - 有没有办法让对象返回自己?

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

语境: 我内詹金斯定义的ClosureScript类的上下文中执行脚本。这是允许委派类型工作流的Script类的扩展。不幸的是,它只是将getProperty()和invokeMethod()调用转发给委托,它并不直接引用委托对象本身。所以一个自引用的属性/方法可以让我得到那个引用。

回答

0

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

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

都会通过。

不幸的是,这实际上并没有解决我原来的问题。在我使用的Script类中,委派策略最终在代理之前首先在脚本上调用默认方法。但是,当我问到这个问题时,它的确回答了这个问题,所以我会关闭它并继续前进。