我有一个基类,我的所有域类都扩展,例如:
class Customer extends IbidemBaseDomain {
. .
}
我的基类中有什么方法可以确定扩展它的类。所以在这个例子中,IbidemBaseDomain是否知道它正在被客户扩展?
答案 0 :(得分:5)
我在JMeter中编写了一个类路径搜索器实用程序类 - 请参阅http://kickjava.com/src/org/apache/jorphan/reflect/ClassFinder.java.htm
但是对于Grails域类,您可以通过从GrailsApplication访问域类来限制搜索。假设您拥有'grailsApplication'Spring bean(通过DI或其他),您可以通过以下方式找到所有类:
def domainClassClasses = grailsApplication.domainClasses.collect { it.clazz }
并使用它们进行isInstance()调用或以其他方式导航类层次结构。
答案 1 :(得分:2)
请参阅this question这适用于Groovy和Java,并且看起来没有办法使用不属于核心Java或Groovy语言的库来执行您想要的操作。