可以反編譯Java類文件以顯示編譯器添加的所有代碼的方式?例如,Java編譯器在沒有找到顯式構造函數時插入一個無參數構造函數。但是,當我沒有顯式構造函數反編譯類文件時,編譯器插入的文件不會顯示出來。另一個例子是編譯器在任何沒有明確擴展其他類的類中插入「extends java.lang.Object」。同樣,當我反編譯這樣的類時,我沒有在反編譯的文本中看到類聲明的「擴展」組件。也許我正在考慮Java編譯器從字面上「插入」代碼的事實?也許我需要一個更復雜的反編譯器?查看由Java編譯器插入的代碼
-2
A
回答
-1
更好地使用字節碼查看器作爲asm的ASMifier。編譯器添加的某些指令在反編譯時跳過,以便保持源代碼和反編譯的代碼接近。
您將通過簽名public <init>()V
找到默認構造函數。如果沒有定義構造函數,它將被添加到字節代碼中。
請考慮讀取字節碼。 –
如果可能的話,我會要求任何倒票都附有解釋性評論。即使經過後面的審查,這並不總是顯而易見的,爲什麼一個職位可能不清楚,沒有用處,或者沒有顯示研究努力,這是投票的標準。非常感謝。 – John
您如何看待「不顯示研究成果」(我個人認爲問題在這裏,即使我沒有downvote)標準可以處理? –