У меня есть структура, которая загружает экземпляры произвольных классов от имени клиента и хотела бы, чтобы поля (в частности, закрытые поля) инициализировались / загружались лениво только при первом доступе к полям.
Есть ли способ перехватить такой доступ к частному полю и ввести значения в поле (возможно, также "кэшировать" их) до того, как значения будут возвращены?
Я предполагаю, что java.lang.reflect.Proxy / InvocationHandler исключены, поскольку они способны только перехватывать вызовы методов.
У меня есть ощущение, что библиотеки манипулирования байт-кодом могут справиться с этим.Я посмотрел на ASM, Javassist, BCEL, cglib и обыскал все вокруг, но не смог найти четких инструкций о том, как этого добиться.