gpt4 book ai didi

java - 如何使用 Javassist 从源代码加载类?

转载 作者:行者123 更新时间:2023-12-02 08:07:10 26 4
gpt4 key购买 nike

我在输入流中有一个类的完整源代码。是否可以使用 Javassist 为此类创建新的 CtClass 对象?.

我知道使用类的名称可以创建一个新的 CtClass 对象,其内容如下:

ClassPool.getDefault().makeClass("name_of_the_new_class");

但就我而言,我事先不知道类的名称,只知道其完整的源代码(当然我可以通过解析源代码获得类的名称,但请不要告诉我这是解决方案的一部分:-) )

最佳答案

如果您想即时编译源文件,请查看工具 API 以及 ToolProvider.getSystemJavaCompiler() 。从那里,您可以从源代码编译 .class 文件,并根据需要使用类加载器加载它们。

然后,您还可以使用 Javassist 从创建的类文件的字节中创建一个 CtClass,使用 ByteArrayClassPath使用新的 ClassPool。

关于java - 如何使用 Javassist 从源代码加载类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7985290/

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