gpt4 book ai didi

Groovy 列出类的所有属性

转载 作者:行者123 更新时间:2023-12-02 07:05:43 25 4
gpt4 key购买 nike

我正在尝试使用 Groovy 列出属性(即具有 getter 方法的所有属性)。我可以使用 myObj.properties.each { k,v -> println v} 来完成此操作,效果很好。但是,这也会打印整个父类(super class)层次结构。如果我只想列出当前类(而不是父类(super class))的属性,这可能吗?

最佳答案

这是我破解的一种方法,但也许您可以在此基础上进行构建。

class Abc {

def a
def b

}

class Xyz extends Abc {
def c
def d
}

def xyz = new Xyz(c:1,d:2)

xyz.metaClass.methods.findAll{it.declaringClass.name == xyz.class.name}.each {
if(it.name.startsWith("get")) {
println xyz.metaClass.invokeMethod(xyz.class,xyz,it.name,null,false,true)
}
}

关于Groovy 列出类的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4027488/

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