我正在开发一个项目,旨在在不直接更改源代码的情况下在代码库中引入修改,这些更改已经实现,我正在用AspectJ重写代码
到目前为止,我设法使用AspectJ实现所有更改。但我不知道如何实现它:
beforeCadastrarAndValidate ()
的方法被子类覆盖。在此方法的最后插入了以下行:super.beforeCadastrarAndValidate ()
我有办法做到这一点吗?
谢谢!
答案 0 :(得分:1)
您可以使用反射从超类中调用它。
import java.lang.reflect.Method;
class Person {
public void greet() {
System.out.println("Person's greet");
}
}
class Employee extends Person {
public void greet() {
System.out.println("Employee's greet");
}
}
class Main {
public static void main(String[] args)
throws Exception {
// get the method object from Person class.
Method g = Person.class.getMethod("greet",
new Class[0]);
Employee e = new Employee();
// When "g" is invoked on an "Employee" object,
// the "Employee.greet" method is called.
g.invoke(e, null);
}
}
参考:https://blogs.oracle.com/sundararajan/entry/calling_overriden_superclass_method_on