编写一个groovy方法来提取带有注释字段的所有嵌套类

编写一个groovy方法来提取带有注释字段的所有嵌套类,groovy,annotations,Groovy,Annotations,我创建对象,然后尝试将它们添加到列表中。它可以构建地图,但问题是对象图很复杂,解决方案不可维护 Person person=new Person(name:"Dennis Carter",department:"Engineering",manager..) Retail retail=Retail(field :"Fixed Price", p:person) list l=[] //manually add to list l<<person.manager l<&l

我创建对象,然后尝试将它们添加到列表中。它可以构建地图,但问题是对象图很复杂,解决方案不可维护

Person person=new Person(name:"Dennis Carter",department:"Engineering",manager..)

Retail retail=Retail(field :"Fixed Price", p:person)
list l=[]

//manually add to list

l<<person.manager
l<<manager.department
l<< manager.address
//etc

//...
Finder f=new Finder(l)
println "Manp is ${f.myMap"

class Finder {
    Finder(def obj){
        for(element in obj )
            addToMap(element)
    }

    def myMap=[:]

    def addToMap( obj) {
        def ops=[]
        def fans=[]
        if(obj){
            ops= obj.class.declaredFields
            for(Field f : ops ){
                fans=   f.annotations
                for(Annotation an : fans){
                    if(an.annotationType()==myAnnot) {
                        MyAnnot well=(MyAnnot)an
                        myMap[well.used()]=well.type()
                    }
                }
            }
        }
        println "Your map is finally ${myMap}"
    }
}

class Retail {
    @MyAnnot
    String field
    Person p
}

class Person{
    @MyAnnot
    String name

    @MyAnnot
    Manager currentManager

    //...
}

class Manager{
    @MyAnnot
    String name
}
Person-Person=新人(姓名:“丹尼斯·卡特”,部门:“工程”,经理……)
零售=零售(字段:“固定价格”,p:人)
列表l=[]
//手动添加到列表中

你试过什么?您是否有任何特殊问题或要求SO为您编写代码?我已经尝试了以下方法,我尝试的解决方案如图所示,但它不可维护。我想使用更具动态性的东西,这样就可以添加新对象而无需手动添加到列表中
MyAnnot.used()
应该返回什么?@MyAnnot{String used()default',String type()default'}