2010-05-28 10 views
0

Существуют ли определенные точки соединения в арифметике, которые я могу поймать?AspectJ join point с простыми типами

Что-то вроде:

int a = 4; 
int b = 2; 
int c = a + b; 

Могу ли я сделать pointcut, что ловит любой из этих линий? И какой контекст я смогу получить?

Я хотел бы добавить before() ко всем методам int/float/double, выполненным в определенном методе класса, это возможно.

Я вижу в AspectJ docs, что определены точки соединения для инициализации объекта и вызовов метода. Объявляет ли инициализация объекта int и выполняет ли оператор + как вызов метода?

Спасибо!

ответ

1

Нет, + не соответствует вызову метода любого типа в Java.

Вы можете, например, создать свой собственный класс-оболочку, который инкапсулирует целое число или использовать BigInteger и сделать pointcut по методу add.

+0

Я начал создавать обертки, когда я вспомнил AspectJ, и хотя это может быть проще. Я пытаюсь сделать программу для визуализации небольших алгоритмов, поэтому я хотел бы иметь возможность применять программу к любому коду без необходимости его изменения. Возможно, Java не подходит для использования, любые предложения? Я хотел бы избежать необходимости создавать новый язык/компилятор. –