gpt4 book ai didi

java - 在运行时在现有类中生成代码 (Java)

转载 作者:行者123 更新时间:2023-12-02 09:39:51 27 4
gpt4 key购买 nike

我已经创建了一个空类SimpleClass。如何在运行时在此类中生成一些代码并重新编译该类以便能够使用该代码?

public class SimpleClass {}

我找到了使用自定义 ClassLoader 和 javax.tools API 生成整个类及其内容的解决方案。但是现有的类有吗?

public class SimpleClass {

//Generated code in runtime
public void method() {
System.out.println("Generated method");
}

}

最佳答案

您可以注册一个 Java 代理来在加载类之前操作该类,以包含您想要的方法。为此,您需要编译一个不同的 jar,在其中注册一个 ClassFileTransformer,您可以在其中更改类文件。 Javadoc for the instrument package为您提供有关如何执行此操作的概述。

加载类后,大多数 JVM 实现都不允许您添加新方法。

关于java - 在运行时在现有类中生成代码 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57184101/

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