正如标题所示,使用Javassist编译的类的类路径是什么?
我的场景是:A类是用Javassist编译的。 B类使用Java Compiler API编译并引用A类。问题是A类对B类不可见......
有什么想法吗?
答案 0 :(得分:0)
B类的“类路径”不依赖于如何编译类(例如,创建类文件),而是如何加载类。
Java使用类的类加载器来查找此类引用的所有类。
每个类加载器都可以有一个父类加载器,通常loader.loadClass
首先向其父类加载器询问任何类,如果失败则尝试加载类本身。
因此,只需确保{B}类加载器可以看到A
类,这意味着A
的类加载器必须是父类(或父类的父类,或者......) )类B
的类加载器。