У меня есть два разных класса аспект, чтобы подсчитать количество вызовов нестатического метода для выполнения тестовой программы. Первый аспект подсчитывает методы для точек вызова "вызов":
pointcut methodCalls() : call (!static * test..*(..));
before(): methodCalls() {
counter.methodCallCounter();
}
в то время как второй аспект подсчитывает методы для точек выполнения "выполнения":
pointcut methodCalls() : execution (!static * test..*(..));
before(): methodCalls() {
counter.methodCallCounter();
}
methodCallCounter() - это статический метод в классе счетчиков.
Количество вызовов метода для небольшой тестовой программы одинаково. Но когда я меняю тестовую программу на более крупную программу, количество вызовов методов во втором классе аспектов (с помощью pointcut point) больше, чем количество вызовов методов в классе аспект с помощью pointcutcut. Это разумно, так как точка соединения вызова не выбирает вызовы, сделанные супер, и поэтому не учитывает их.
Однако я столкнулся с ситуацией, когда для конкретного выполнения программы число вызовов нестатического метода в классе аспект с "pointcutcut" было выше, чем количество вызовов метода в классе аспект с "pointcut point". Я не могу найти никакой интерпретации, почему это происходит. Любая мысль о причине второй ситуации оценивается.