Я использую Java 17 и Spring Boot Starter 3.2.2.
Я пытался использовать Javassist 3.22.0-GA > чтобы я мог создавать динамические классы.
Был протестирован простой код, в котором был создан ctClass, в ctClass добавлено одно поле типа string и добавлен конструктор по умолчанию.
Но ctClass.toClass( ) всегда выдает java.lang.NullPointerException невозможно вызвать java.lang.reflect.field.setaccessible(boolean), поскольку ao имеет значение null. Связано ли это с версией Javassist? Может кто-нибудь помочь, как решить эту проблему и динамически создать простой класс с помощью Javassist?
CtClass ctClass = pool.makeClass(className);
// Create the field
CtField ctField = new CtField(pool.get("java.lang.String"), fieldName, ctClass);
ctField.setModifiers(Modifier.PRIVATE);
ctClass.addField(ctField);
// Add default constructor
CtConstructor defaultConstructor = new CtConstructor(new CtClass[]{}, ctClass);
defaultConstructor.setBody("{ this." + fieldName + " = null; }");
ctClass.addConstructor(defaultConstructor);
// Convert CtClass to Java Class
return ctClass.toClass(this.class.getClassLoader(), this.class.getProtectionDomain());
Подробнее здесь: https://stackoverflow.com/questions/786 ... tion-issue
Проблема создания динамического класса Javassist ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Добавить имя или аннотация параметра в параметр в сгенерированный класс через Javassist
Anonymous » » в форуме JAVA - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-