Groovy Список всех объектов для класса - PullRequest
5 голосов
/ 27 октября 2010

Я пытаюсь перечислить свойства (т. Е. Все свойства, которые имеют метод получения) с помощью Groovy.Я могу сделать это, используя myObj.properties.each { k,v -> println v}, и это прекрасно работает.Но это также печатает для всей иерархии суперкласса.Если я просто хочу перечислить свойства для текущего класса (а не суперкласса), возможно ли это?

Ответы [ 2 ]

3 голосов
/ 27 октября 2010

Вот способ, который я взломал, но, возможно, вы можете использовать его.

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)
    }
}
1 голос
/ 08 января 2014

Попробуйте со следующим:

myObj.declaredFields.collect{it.name}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...