如何将接口方法作为属性列表。我有以下接口与这样的方法
interface ValuationEvent {
String getType()
String getAggregateId()
String getXmlPayload()
}
我试图得到一个方法列表作为属性,如最终输出应该是
[type, aggregateId, xmlPayload]
我尝试使用属性方法,但它给了我一个包含54个属性的长列表,这些属性不包含上述属性
def documentProperties = ValuationEvent.properties
答案 0 :(得分:1)
也许只是获取所有方法,从前面和小写的第一个字母中删除“get”?
ValuationEvent.getDeclaredMethods().collect{
it.name.replace("get","").with{ it[0].toLowerCase() + it[1..-1] }
}
答案 1 :(得分:1)
您可以collect
属性名称:
interface ValuationEvent {
String getType()
String getAggregateId()
String getXmlPayload()
}
def properties = ValuationEvent.metaClass.properties.collect { it.name }
assert properties == ['type', 'aggregateId', 'xmlPayload']