如题所示,用Javassist编译的类的类路径是什么?
我的场景是:A类是用Javassist编译的。 B 类是用 Java Compiler API 编译的,并引用了 A 类。问题是 A 类对 B 类不可见...
有什么想法吗?
最佳答案
B类的“类路径”不取决于类是如何编译的(例如创建类文件),而是类是如何加载的。
Java 使用类的类加载器来查找该类引用的所有类。
每个类加载器都可以有一个父类加载器,通常 loader.loadClass
首先向其父类加载器询问任何类,如果失败则尝试加载类本身。
因此,只需确保 A
类对 B 类的类加载器可见,这意味着 A
的类加载器必须是父类(或父类类 B
的类加载器的父级,或 ...)。
关于java - 使用 Javassist 编译的类的类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3513422/