Посмотрел использование CGLib, ASM, BCEL (аспект) и Javassist для добавления поля в класс во время выполнения....
Просто чтобы понять, похоже, что эти манипуляторы байт-кода не обновляют фактический класс, а позволяют пользователю только сбрасывать модификацию (например, с CGLib и методом writeFile). Надеялся, что найду решение, которое (а) загрузит класс (вместо того, чтобы выполнять InputStream с BCEL) и (б) обновит класс.
Может это нормально? Люди обычно создают прокси и передают прокси?
Что я хочу сделать, так это добавить поле (примечание: не свойство с помощью методов get/set) перед передачей объекта в структуру, которая ищет поля (не свойства) с определенной аннотацией. Итак, «клиенты» создают мои целевые классы, которые я хочу добавить в дополнительное поле. Перехват вызовов АОП на сервисный уровень, где я хочу манипулировать этими объектами.