我正在使用javassist编写程序来编译另一个Java类。生成的类使用一些对象,例如BigDecimal, List, ArrayList
。因此,我导入了他们的软件包:
ClassPool pool = ClassPool.getDefault();
pool.insertClassPath(classDir); //classDir is my program Directory
pool.importPackage("java.util.List");
pool.importPackage("java.math.BigDecimal");
pool.importPackage("java.util.ArrayList");
CtField.make()
为每个对象创建一些对象。当我使用javassist进行编译时,它将引发错误:CannotCompileException: [source error] no such class: BigDecimal
最佳答案
顾名思义,ClassPool.importPackage()
(JavaDoc)用于导入软件包,而不是类。考虑到这一点,您应该使用:
ClassPool pool = ClassPool.getDefault();
pool.insertClassPath(classDir); //classDir is my program Directory
pool.importPackage("java.util");
pool.importPackage("java.math");
https://stackoverflow.com/questions/17874455/