【问题标题】:Groovy - Is there a way to ask an object to return itself?Groovy - 有没有办法让对象返回自己?
【发布时间】:2016-03-07 09:39:11
【问题描述】:

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

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

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

【问题讨论】:

    标签: groovy jenkins self-reference loopback


    【解决方案1】:

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

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

    都会通过。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      相关资源
      最近更新 更多