grails 找某个类的所有子类

// 列出继承了cn.ams.core.AbstractMonitor的所有class
        def monitorClassList = grailsApplication.getAllClasses().findAll {
            'cn.ams.core.AbstractMonitor'.equals(it.superclass.getName())
        }?.unique()
        def monitorInstanceList = []
        monitorClassList.each {
            // 如果该class有findAll方法,执行findAll方法,把结果放入到容器
            if (it.metaClass.respondsTo(it, 'findAll')) {
                monitorInstanceList.addAll(it.findAll())
            }
        }


it.metaClass.respondsTo用于检查类是否有findAll方法

你可能感兴趣的:(equals,grails)