我必須在java中找到方法的用法。在java中找到方法的用法
需求是編寫元代碼,它可以查找代碼並找出使用的方法和位置。 在eclipse中我們可以找到它:Find methods calls in Eclipse project
我試過手動解析代碼和java解析器api:http://code.google.com/p/javaparser/。
我發現這兩個選項都很困難,並涉及很多需要處理的場景。
任何可以使用的API或我必須手動分析代碼以找到用法?
我必須在java中找到方法的用法。在java中找到方法的用法
需求是編寫元代碼,它可以查找代碼並找出使用的方法和位置。 在eclipse中我們可以找到它:Find methods calls in Eclipse project
我試過手動解析代碼和java解析器api:http://code.google.com/p/javaparser/。
我發現這兩個選項都很困難,並涉及很多需要處理的場景。
任何可以使用的API或我必須手動分析代碼以找到用法?
這裏是開源的Java代碼分析器的名單:他們的http://java-source.net/open-source/code-analyzers
檢查源代碼,例如PMD
如果你可以分析它之前編譯代碼,那麼你就可以檢查字節碼爲了找到方法調用。
例如,您可以使用ObjectWeb ASM庫。使用這個庫,你需要編寫讀取類文件的代碼。然後,您可以檢查類文件中的每個方法,以查找INVOKESTATIC,INVOKEVIRTUAL,INVOKEINTERFACE和INVOKESPECIAL字節碼指令。這些是用於調用方法的字節碼指令。每條指令都有被調用方法的名稱,聲明類/接口的名稱以及與指令相關的描述符。
這聽起來可能相當複雜,但實際上並非如此。
我不知道爲什麼它downvoted,問題是完全有效的(只是,我沒有添加我試過X和Y),反正添加,我試過X和Y :) –
我會想象downvotes是因爲問題出現(*任何可以使用的API,或者我必須手動解析代碼以找到用法?*「在我看來,就像我們推薦一個庫的請求,這是在StackOverflow上脫離主題的問題) 。 – JonK