我有一个类(A 类)扩展了另一个类(B 类)。我动态加载 Class A,我希望通过 Class A 访问扩展功能。
例子:
Class A extends Class B
- function getName()
Class B
- function abstract getName()
- function doSomethingElse()
我如何在 Java 中执行此操作(访问 doSomethingElse())?
我正在阅读代码,我怀疑这可能是代码行:
public Object invoke(String classname, String method, Object args) {
Object res = null;
try {
for (Class i : classes) {
if (i.getName().equals(classname)) {
Object obj = i.newInstance();
Method loadMethod = i.getMethod(method, null);
res = loadMethod.invoke(obj, args);
}
}
} catch (InstantiationException | IllegalAccessException | NoSuchMethodException | IllegalArgumentException | InvocationTargetException ex) {
ex.printStackTrace();
}
return res;
}
我正在尝试为 method.invoke() 方法编写一个适配器,以使调用方法更容易,但错误都指向这个代码片段产生了所有问题。我将 getMethod 的第二个参数设置为 null,我认为这是问题所在,但我不知道如何解决它。