2015-10-06 29 views
1

javaclass(org.apache.bcel.classfile.JavaClass)我有一個.class文件,可以被類加載到類對象(`java lang `)。我需要將類對象轉換爲BCEL中間Java類(org.apache.bcel.classfile.JavaClass)對象。我該怎麼做呢?我怎樣才能從一個普通的類(java.lang.class <?>)對象

+0

歡迎堆棧溢出!我編輯,以改善您的帖子的格式。但是,還有一些其他問題。我們首先需要看到你自己試圖解決這個問題。如果你已經開始編碼,我們只會指出你的方向是正確的,但我們很少會直接給你代碼。發佈您的相關代碼以及您收到的任何錯誤消息。檢查Java文檔和搜索引擎。如果其他人在這些資源中找到答案,您將得到「RTD」或「LMGTFY」回覆以及大量的降薪。 – CodeMouse92

回答

0

簡短的回答是,你不能,但可能有另一種方法來解決你的問題。

BCEL需要從類文件中讀取類,並且不能從Class實例生成JavaClass。這是因爲BCEL需要字節碼而不僅僅是類元數據(這是類實例中的內容)。使用標準JVM指令無法從Class實例獲取字節碼。相反,BCEL從類文件中解析它。這就是說,如果你的Class在某個地方(在一個jar文件或者只是一個.class文件中)代表一個類文件,你通常可以從Class實例訪問類文件,雖然有些間接。這個問題可以讓你開始(Find where java class is loaded from

0

下面的代碼幫助: -

public void get(){ 

Class<?> javaClass1 = null; 
javaClass1 = ucl.loadClass("com.sample.Customer"); 
org.apache.bcel.classfile.JavaClass javaClazz1=org.apache.bcel.Repository.lookupClass(javaClass1); 
} 
+0

上面的代碼適用於我。 – JITHIN

相關問題