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