gpt4 book ai didi

Java 在运行时编辑注释属性

转载 作者:太空宇宙 更新时间:2023-11-04 13:38:26 25 4
gpt4 key购买 nike

有没有办法在运行时修改Field注解的属性?不仅仅是您可以在任何时候从 Field 获取的注释对象,而且将来每当您获得相同的注释时,它都会使用新值进行更新。

我的任务是能够在运行时编译 Java 文件,然后在应用程序中使用该类。我已经这样做了,但唯一的问题是,虽然在标准 Java 应用程序中自定义注释确实得到了保存,但在 Tomcat 7 上运行的 Spring 应用程序上运行时,由于某种原因,它们会被删除。顺便说一句,这一切都在内存编译中,在此过程中不会创建任何文件。

我找不到任何方法来解决这个问题,所以我决定再次解析 Java 文件并向我需要的任何字段添加注释。我通过一些技巧弄清楚了如何向以前没有任何注释的字段添加注释,但现在我需要配置它,因为注释有一些属性、几个 boolean 值和一个 int。

我研究了很多 StackOverflow 问题中提供的几种方法,但它们都修改了通过反射获取的注释对象,如果我在另一种方法中尝试获取相同的注释,它的值就会被重置。任何对此事的见解将不胜感激。

最佳答案

对于将来查看此内容的任何人,我通过首先编译代码并在将字节码创建到类中之前获取字节码来解决问题。然后我使用Javassist在运行时添加注释。之后,我只是通过自定义类加载器将其编译成一个类,这让我获得了 Class 对象,而无需将其加载到系统类加载器中。

关于Java 在运行时编辑注释属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com