2010-08-18 52 views
2

正如標題所示,使用Javassist編譯的類的類路徑是什麼?使用Javassist編譯的類的類路徑

我的方案是:類A使用Javassist編譯。 B類使用Java編譯器API編譯並引用A類。問題是A類對B類不可見...

任何想法?

+0

我不確定您的意思是「不可見」 – MatrixFrog 2011-07-20 01:56:18

+0

Javassist編譯的類是在運行時生成的還是生成一個寫回磁盤的類文件? – prunge 2011-07-20 02:18:17

回答

0

B類的「類路徑」不取決於類是如何編譯的(例如創建類文件),而是如何加載類。

Java使用類的類加載器來查找此類所引用的所有類。

每個類加載器都可以有父類加載器,並且通常loader.loadClass首先會向其父類加載器請求任何類,並在失敗時嘗試加載類本身。因此,只要確保A類對類B的類加載器可見即意味着A的類加載器必須是類的類加載器的父類(或父類的父類或...) B

相關問題