Кто-нибудь знает какие-либо библиотеки Java, которые позволили бы мне определить новый класс Java во время выполнения, а также создать экземпляр этого класса?
ASM является универсальной средой обработки и анализа байт-кода Java.Его можно использовать для изменения существующих классов или динамического создания классов непосредственно в двоичной форме.
Я не уверен, что это то, что вы ищете, но рассмотрите библиотеку Javassist или cglib .
Javassist (Java Programming Assistant) делает манипулирование байт-кодом Java простым.Это библиотека классов для редактирования байт-кодов в Java;это позволяет программам Java определять новый класс во время выполнения и изменять файл класса, когда JVM загружает его.[...] cglib - это мощная, высокопроизводительная и качественная библиотека генерации кода, которая используется для расширения классов JAVA и реализации интерфейсов во время выполнения.[...]
Javassist (Java Programming Assistant) делает манипулирование байт-кодом Java простым.Это библиотека классов для редактирования байт-кодов в Java;это позволяет программам Java определять новый класс во время выполнения и изменять файл класса, когда JVM загружает его.[...]
cglib - это мощная, высокопроизводительная и качественная библиотека генерации кода, которая используется для расширения классов JAVA и реализации интерфейсов во время выполнения.[...]
Java Proxy класс может использоваться для создания динамических классов, которые реализуют определенные интерфейсы во время выполнения.Такие классы используют InvocationHandler для обработки вызовов методов.
Если вы не хотите работать на уровне байт-кода, возможное решение состоит в том, чтобы использовать API компилятора Java SE 6. Например, см. здесь .