java - 使用 Javassist 编译的类的类路径

标签 java javac bytecode java-compiler-api javassist

如题所示,用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/

相关文章:

java - 在递归方法中返回值是如何工作的? [Java]

java - Cloudera设置Sqoop导入给出Java堆空间错误并且超出GC开销限制

javac - 如何增加 Borland JBuilder 2005/2006 中 javac 进程的最大堆大小

java - 为什么java可执行文件不接受参数文件?

Java Atomicity & 一个好的比较和交换框架?

java - 如何正确覆盖 Spring 和 Hibernate 的 BasicDataSource

java - 在Windows 7和JAVA 64位上使用zxing

java - 如何拦截构造函数

javascript - nodejs/V8 是否将编译后的机器代码存储在磁盘上的任何位置?

java - Java Android 应用程序中的文本编码问题