2010-05-06 153 views
0

我想從Java源代碼中提取方法體。 假設我有以下代碼:從一類Java源代碼中提取方法體源代碼

public class A{ 

    public void print(){ 
    System.out.println("Print This thing"); 
    System.out.println("Print This thing"); 
    System.out.println("Print This thing"); 
    } 

} 

我的目標不是要提取方法名(在這種情況下,打印),而且 方法的波特(在這種情況下,印刷方法中的三個print語句)。任何人都可以建議我該怎麼做?他們的任何圖書館都可以這樣做。

回答

0

這是一個黑客十歲上下的方式,我已經看到檢索到的方法名稱:

​​

有人用更強的Java-FU也許能夠給出一個更簡潔的方法,並且還提供了一種方法來檢索的身體方法。

+0

不錯的聰明解決方案,但它不會顯示方法的主體太...只有名稱。 – oedo 2010-05-06 20:10:03

0

eclipse中的Alt-Shift-I會嘗試內聯方法調用(在方法調用中使用光標)。

2

如果您正在討論操作源代碼,所有的IDE都有一定程度的重構支持,這將允許您選擇一行或多行代碼並創建一個由這些行組成的方法。

如果您想以編程方式執行該操作,則需要解析源文件。您可以編寫一個詞法分析器和解析器,但除非您構建IDE,否則這是很多工作。你可能想看看Annotation processing。除非你也使用Compiler Tree API,否則這可能不夠遠。但是請注意,當你到達那裏時,你正冒險嘗試「隨處運行」路徑並進入「特定實施」的土地。

如果你想在運行時操縱事物,那麼看看BCELASMJava Agents

+0

Thx的建議。我不想在運行時操縱事物。 輸入將是純java源代碼。我發現日蝕JDT提供源代碼操作。我會嘗試。有沒有其他這樣的開源庫? – 2010-05-07 03:03:32

+0

有幾個(谷歌的Java重構工具)。 RefactorIt(http://refactorit.sourceforge.net/)可能是最好的維護。它也可作爲NetBeans和Eclipse的插件使用。 – 2010-05-07 14:34:29