属性的groovy接口方法

时间:2016-07-28 07:14:04

标签: groovy

如何将接口方法作为属性列表。我有以下接口与这样的方法

interface ValuationEvent {
    String getType()
    String getAggregateId()
    String getXmlPayload()
}

我试图得到一个方法列表作为属性,如最终输出应该是

 [type, aggregateId, xmlPayload]

我尝试使用属性方法,但它给了我一个包含54个属性的长列表,这些属性不包含上述属性

def documentProperties = ValuationEvent.properties

2 个答案:

答案 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']