2
正如标题所示,使用Javassist编译的类的类路径是什么?使用Javassist编译的类的类路径
我的方案是:类A使用Javassist编译。 B类使用Java编译器API编译并引用A类。问题是A类对B类不可见...
任何想法?
正如标题所示,使用Javassist编译的类的类路径是什么?使用Javassist编译的类的类路径
我的方案是:类A使用Javassist编译。 B类使用Java编译器API编译并引用A类。问题是A类对B类不可见...
任何想法?
B类的“类路径”不取决于类是如何编译的(例如创建类文件),而是如何加载类。
Java使用类的类加载器来查找此类所引用的所有类。
每个类加载器都可以有父类加载器,并且通常loader.loadClass
首先会向其父类加载器请求任何类,并在失败时尝试加载类本身。因此,只要确保A
类对类B的类加载器可见即意味着A
的类加载器必须是类的类加载器的父类(或父类的父类或...) B
。
我不确定您的意思是“不可见” – MatrixFrog 2011-07-20 01:56:18
Javassist编译的类是在运行时生成的还是生成一个写回磁盘的类文件? – prunge 2011-07-20 02:18:17