Как динамически создавать классы Java с помощью Java Reflection? - PullRequest
0 голосов
/ 03 февраля 2012

Отражение используется для загрузки классов Java и управления ими на лету.Но у меня возник странный вопрос, который спрашивает меня, как создавать классы Java на лету с помощью Reflection. Я имею в виду, что классы не скомпилированы или имеют исходный код, пока мы не хотим их создавать.Это действительно возможно?Есть примеры?

Ответы [ 4 ]

2 голосов
/ 03 февраля 2012

Вы можете взглянуть на eval-метод Bean Shell Он позволяет выполнять любой код Java на лету без необходимости компилировать код в байт-код. Вы можете передать строку, содержащую весь код Java для вашего класса, в метод eval, и вы получите экземпляр динамически созданного класса. Дайте мне знать, если вы заинтересованы в этом и хотите, чтобы я привел вам пример.

1 голос
/ 03 февраля 2012

Мне кажется, вам не нужно размышлять, а просто нужно вызвать JavaCompiler непосредственно из вашего кода: JavaCompiler .

0 голосов
/ 03 февраля 2012

Вы можете попробовать ASM ASM

или библиотека разработки байт-кода

Библиотека разработки байт-кода

для манипулирования, создания классов во время выполнения

В .NET у нас есть Reflection.Emit (C #), который может это сделать Reflection.Emit

Не уверен, существует ли прямой эквивалент Java. Вы можете увидеть еще один похожий вопрос по SO здесь Java-эквивалент отражения.emit

0 голосов
/ 03 февраля 2012

Может быть Apache DynaBeans подойдет.Вы можете найти некоторые учебники по их созданию и управлению, например.здесь: http://www.javaranch.com/journal/2003/07/TouringTheCommonsPart1.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...