Улучшение байт-кода для полей в классе - PullRequest
2 голосов
/ 16 ноября 2010

Можно ли добавить «крючки» в класс с помощью расширения байт-кода, которое выполняет код всякий раз, когда поле класса читается или записывается?Например, я хотел бы автоматически устанавливать «грязный» флаг всякий раз, когда новому значению присваивается поле.

Если да, то какие библиотеки лучше всего подходят для реализации этой функции?

Ответы [ 2 ]

2 голосов
/ 16 ноября 2010

Я бы посоветовал вам прочитать об AspectJ. Вероятно, это инструмент, который вы ищете.

1 голос
/ 16 ноября 2010

Вот как генерировать геттеры и сеттеры с использованием инфраструктуры ASM. Это должно начать вас.

Вы даже можете позволить вашему перезаписчику байт-кода подключиться к загрузчику классов и выполнить переписывание на лету.

...