前言
工作中遇到一個問題,通過mybatis自動生成的代碼,mybatisgenerator會生成entity,我需要獲取entity的字段,雖然entity文件已經(jīng)生成在磁盤中了,但是我通過反射怎么都獲取不到,會報classnotfoundexception

image.png
我能力有限,想不出什么解決辦法,之后我去問==ChatGPT==,它給了我一個相當準確的提示:javacompiler,然后我順著這個思路終于找到了解決辦法。

image.png
文檔地址:
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);
//反射可以獲取到對象后就自由發(fā)揮了
今天通過人工智能找到問題解決思路,在通過這個思路找到大神的文章解決問題,感觸頗深,這個文章做個紀念。