@Dikiiforever

Можно ли добавить новый метод в класс во время исполнения?

Например есть простой пустой класс без свойств и методов. Возможно ли добавить туда методы и свойства, а потом вызывать их через рефлексию?

Update
И еще так мысли вслух. JRebel как то подменяет классы с измененными(добавленными удаленными) методами и свойствами прямо в рантайме. Каким образом?
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 2
jaxtr
@jaxtr
JavaEE/Spring-разработчик
Любые манипуляции (на уровне JVM) с классами в рантайме возможны при помощи библиотек, работающих с байткодом (тот же cglib или asm) и кастомным javaagent. Есть проекты вроде JRebel, DCEVM или Spring Loaded, которые позволяют менять логику в рантайме (опять же при помощи указанных уже инструментов).

Использовать такие инструменты в продакшне противопоказано, а в разработке они бесполезны при TDD.

UPD: ответ на вопрос: можно, но нужно ли?
Ответ написан
Комментировать
@aol-nnov
cglib, например.
но как говорит стековерфлоу, итс нот симпл, потому что класс уже загружен класслоадером
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы