java - java中的动态注释更改

标签 java reflection playframework annotations hotswap

我必须在运行时更改java中模型类的注释。 该场景在我的网页上,当我更改下拉值并单击“应用”按钮时,我有一个下拉菜单,我必须根据下拉值在我的模型类上添加注释。

为此,我使用 javaassit 在类上添加注释。我认为注释应用正确,但我无法重新加载该类。我尝试使用 HotswapAgent 来做到这一点。但看起来不起作用。

我正在使用play框架

任何帮助将不胜感激。

ClassPool pool= Enhancer.newClassPool();
CtClass cc = pool.get("Test");
ClassFile cf = cc.getClassFile(); 
ConstPool cp = cf.getConstPool();
// Code for creating and adding annotation comes here.....
ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
DataOutputStream os = new DataOutputStream(bos);
cf.write(os);
os.close(); 
ClassDefinition cd = new ClassDefinition(Test.class, bos.toByteArray()); 
HotswapAgent hh = new HotswapAgent();
hh.reload(cd);

最佳答案

请尝试一下,如果使用相同的类加载器就可以加载它

https://www.baeldung.com/java-reflection-change-annotation-params

关于java - java中的动态注释更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16771043/

相关文章:

Java - 使用反射递归修改对象值

java - 我应该如何根据用户选择来选择实例化哪个具体实现?

java - Play Framework : Edit welcome tag

maven - 将 Keycloak 集成到 Play2 项目中

java - 在客户端进行身份验证,现在如何保护我的 Java Rest API?

java - Scala 图像压缩和优化

java - 均匀对齐对象

reflection - 戈朗 : Function to determine the arity of functions?

java - 了解 maven-enforcer-plugin 在某些 pom 文件中的使用方式

scala - 扩展 Play SBT "run"任务