当前位置: 首页>后端>正文

java获取运行时动态生成的类对象

前言

工作中遇到一个问题,通过mybatis自动生成的代码,mybatisgenerator会生成entity,我需要获取entity的字段,虽然entity文件已经生成在磁盘中了,但是我通过反射怎么都获取不到,会报classnotfoundexception

java获取运行时动态生成的类对象,第1张

我能力有限,想不出什么解决办法,之后我去问==ChatGPT==,它给了我一个相当准确的提示:javacompiler,然后我顺着这个思路终于找到了解决办法。

java获取运行时动态生成的类对象,第2张

文档地址:


https://www.liaoxuefeng.com/article/1080190250181920

文章写得非常清除,语言也有意思,只是不懂思路也不太好搜到。

文章源码:


链接:https://pan.baidu.com/s/1VY8zLm8G3ZXAkJlUD0Jz0w?pwd=wh5m

提取码:wh5m

使用方法:


//JAVA_SOURCE_CODE就是把生成的java文件读取成String

//例如:FileUtils.readFileToString(new File("filepath"))   

        JavaStringCompiler compiler = new JavaStringCompiler();

        Map<String, byte[]> results = compiler.compile("UserProxy.java", JAVA_SOURCE_CODE);

        Class<?> clazz = compiler.loadClass("UserProxy.java", results);

//反射可以获取到对象后就自由发挥了

今天通过人工智能找到问题解决思路,在通过这个思路找到大神的文章解决问题,感触颇深,这个文章做个纪念。


https://www.xamrdz.com/backend/32h1938374.html

相关文章: