我用它来收集一个班级的所有方法:
grailsApplication.getMainContext()的getBean。("的className&#34)。metaClass.methods *。名称
但是这会返回所有方法,包括继承的,如何只过滤类所拥有的方法?
答案 0 :(得分:5)
这将为您提供过滤的方法名称列表,以仅包含仅属于声明类的方法(在此示例中为SomeClass
):
SomeClass sc = new SomeClass()
List<String> declaringClassOnlyMethods = sc.metaClass.methods.findAll { MetaMethod method ->
if(method.declaringClass.name == sc.class.name) {
method.name
}
}