3
假设如下。有一些超类或接口声明了一些方法:Base.doSmth()
。还有一些实现此方法的继承类:Inherited.doSmth()
。我们有Inherited.doSmth()
的反思(Method
),我们知道什么是基类,以便我们可以访问它的反射(Base.class
)。问题是:如何获得Base.doSmth()
方法的思考?当然,我们可以遍历Base
的所有方法,并通过名称,参数和返回类型找到一个,但是可能已经有一些解决方案了。所有事情都发生在Spring相关的类中,所以代码已经与Spring耦合,因此使用它的实用工具是可以的。如何获取在特定父类中声明的方法?
谢谢。
这当然是可以的,但我认为可以使用一些Spring util-method,这使得这个工作成为可能,例如'org.springframework.aop.support.AopUtils.getMostSpecificMethod()'。 – 2012-02-20 08:44:18
哦,Spring没有任何实用方法(可能我不知道),但Apache Commons Lang3有一个带有ClassUtils名称的实用程序类,并且此类具有getAllSuperclasses方法和其他有用的方法,可能对您有用。 – MJM 2012-02-20 08:51:28
感谢MJM,我将调查Apache Commons Lang,否则手动迭代'Method []'数组。 – 2012-02-20 08:53:18