Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
正如标题所暗示的,用 Javassist 编译的类的类路径是什么?
我的场景是:A 类是用 Javassist 编译的。B类使用Java Compiler API编译并引用A类。问题是A类对B类不可见......
有任何想法吗?
B 类的“类路径”不取决于类是如何编译的(例如类文件是如何创建的),而是类是如何加载的。
Java 使用类的类加载器来查找该类引用的所有类。
每个类加载器都可以有一个父类加载器,通常loader.loadClass首先向其父类加载器询问任何类,如果失败,则尝试加载类本身。
loader.loadClass
因此,只需确保A该类对 B 类的类加载器可见,这意味着 的类加载器A必须是 class 的类加载器的父级(或父级的父级,或...)B。
A
B