Я хочу получить вызывающий метод, где вызывается указанный метод c.
Пример:
Метод, который я рассматриваю:
public void methodA(int a, int b){...}
вызывается в тестовом методе, а также в самой программе
@Test
public void testMethodA(
... some code...
objectClassA.methodA(x,y);
)}
Class B {
...
public void methodB(){
objectClassA.methodA(x,y);
}
}
То, что я хочу получить как-то, внутренняя или, по крайней мере, подпись testMethodA и methodB
Чтобы сделать это, я подумал, что AspectJ может мне помочь, поэтому я посмотрел на это и закончил тем, что написал этот комментарий
pointcut pcmethodA(): execution(* A.methodA(..) );
и мой совет выглядел примерно так
before(): pcmethodA() {
System.out.println("[AspectJ] Entering " + thisJoinPoint);
System.out.println("[AspectJ] Signature " + thisJoinPoint.getSignature());
System.out.println("[AspectJ] SourceLocation "+ thisJoinPoint.getSourceLocation());
Но это возвращает
[AspectJ] Entering execution(void com.example.somePackage.A.methodA(int, int)
[AspectJ] Signature com.example.somePackage.A.methodA(int, int)
[AspectJ] SourceLocation A.java:25 /** Line number of the methodA in the file **/
Я впервые использую AspectJ, есть ли любой объект или способ получить вызывающий метод из моих найденных точек соединения? testMethodA и methodB
Спасибо