2

正如标题所暗示的,用 Javassist 编译的类的类路径是什么?

我的场景是:A 类是用 Javassist 编译的。B类使用Java Compiler API编译并引用A类。问题是A类对B类不可见......

有任何想法吗?

4

1 回答 1

0

B 类的“类路径”不取决于类是如何编译的(例如类文件是如何创建的),而是类是如何加载的。

Java 使用类的类加载器来查找该类引用的所有类。

每个类加载器都可以有一个父类加载器,通常loader.loadClass首先向其父类加载器询问任何类,如果失败,则尝试加载类本身。

因此,只需确保A该类对 B 类的类加载器可见,这意味着 的类加载器A必须是 class 的类加载器的父级(或父级的父级,或...)B

于 2011-07-21T12:05:56.340 回答