Относится к: Есть ли способ получить байт-код для класса во время выполнения?
Я добавляю долговечность в Clojure и, наконец, я готов добавить функции. В Clojure функции байтово скомпилированы в классы с методами invoke (среди прочих). Таким образом, функции первого класса. Чтобы сделать их долговечными, мне нужно сериализовать и десериализовать эти классы. Как получить байт-код для класса, не имея доступа к файлу .class?
Пожалуйста, исправьте меня, если я ошибаюсь, но использование агента требует создания отдельной виртуальной машины с агентом, подключающимся к первой виртуальной машине. Мне нужно сделать это с той же виртуальной машины.
Недостаточно использовать Serializable для установки и получения объекта Class. После десериализации мне нужно загрузить класс, и при последующих экземплярах ВМ может возникнуть конфликт имен классов. Мне нужно изменить байт-код, чтобы переименовать класс во что-то уникальное во время десериализации / загрузки класса.