gpt4 book ai didi

groovy - 获取 Groovy 类的闭包属性名称

转载 作者:行者123 更新时间:2023-12-02 08:40:49 24 4
gpt4 key购买 nike

给定以下 Groovy 类:

class MyClass {

def someClosure = {}
def someClosure2 = {}

private privateClosure = {

}

def someVal = 'sfsdf'

String someMethod() {}
}

我需要一种方法来检索所有已分配闭包的公共(public)属性的名称,因此此类的正确结果将是 ['someClosure', 'someClosure2'] .

我可以假设所有感兴趣的类都有一个默认构造函数,所以如果它使事情更容易,我可以通过以下方式从实例中检索属性

def instance = MyClass.newInstance()

最佳答案

您可以简单地检查每个 groovy 属性的值:

class Test {
def aClosure = {}
def notClosure = "blat"
private privateClosure = {}
}

t = new Test()
closurePropNames = t.properties.findResults { name, value ->
value instanceof Closure ? name : null
}
assert closurePropNames == ['aClosure']

私有(private)字段不被视为 groovy 属性,因此它们不会包含在结果中。

关于groovy - 获取 Groovy 类的闭包属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16719309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com