关于一些我无法理解的小问题。我有以下内容:
public abstract class A
{
...
}
和这个类的扩展
public class B extends A
{
...
}
现在我有一个如下所示的类
public class DoStuff extends AbstractDoStuff
{
public void doNiceStuff(B b)
{
...
}
}
我试图通过反射调用这个类的方法。但是我试图从一个不知道 B 并且只知道 A 的包中调用这个方法。这是由于项目的依赖关系
所以我有以下代码需要找到方法doNiceStuff(B):
public abstract class AbstractDoStuff
{
public static Method getGetterMethod(Class<? extends AbstractDoStuff> stuffClass) throws NoSuchMethodException
{
Method method = stuffClass.getDeclaredMethod("doNiceStuff", A.class)
...
}
}
所以 getDeclaredMethod 应该在 DoStuff 类上找到 doNiceStuff 但似乎反射无法找到使用超类 A.class 的方法。但是我不能在那里提供 B.class 因为包对 B 的存在一无所知。
知道是否有办法解决这个问题吗?
问候
迈克尔