Заменить содержимое некоторых методов во время выполнения

Я хотел бы заменить содержимое некоторых методов во время выполнения.

Я знаю, что могу использовать для этого javassist , но это не работает, потому что классы, которые я хотел бы улучшить, уже загружены системой classLoader .

Как я могу заменить содержимое метода во время выполнения? Должен ли я попытаться выгрузить класс? Как я могу это сделать ? Я видел, что это возможно, но я не мог понять, как это сделать.

Если возможно, я хотел бы избежать использования внешней библиотеки для этого, я хотел бы закодировать ее самостоятельно -.

Дополнительная информация: -Класс, который я хотел бы улучшить, содержится в структуре (в файле jar ) -. Мой код на самом деле является плагином этого фреймворка -Фреймворк, в котором работает мой плагин, имеет собственный classLoader ,но этот classLoader не загружает свои собственные классы (он делегирует их системному загрузчику классов) -Я использую фреймворк Play .

Спасибо за помощь !

22
задан Fabien Henon 31 July 2012 в 21:40
поделиться