2009-06-18 3 views
5

Есть ли способ добавить (или расширить существующие) классы во время выполнения в java. Я застрял в проблеме, в которой я должен расширить существующий класс во время выполнения и добавить это в путь к классам, чтобы этот новый класс был поднят.Расширение или добавление новых классов во время выполнения в Java

спасибо,

ответ

4

Вы можете захотеть взглянуть на BCEL. Без дополнительной информации о том, что вам нужно сделать, сложно дать более конкретный ответ.

0

Вы должны обязательно написать, зачем нужна эта функция. Если вы попытаетесь добавить или заменить логику во время выполнения, вы можете посмотреть на scripting API и некоторые актуальные implementations.

11

Существует несколько способов сделать это.

  • исходный код компиляции во время выполнения, используя javax.tools пакет, а затем загрузить их с помощью ClassLoader.
  • Если вы пишете интерфейсы, вы можете украсить классы Proxy.
  • Возьмите более сложный маршрут манипуляции/генерации байт-кода с использованием технологии, такой как BCEL или ASM (последняя имеет более современную поддержку языковых функций, таких как аннотации), а затем загружает класс с помощью ClassLoader.

Я предполагаю, что есть другие варианты.

 Смежные вопросы

  • Нет связанных вопросов^_^