2010-05-06 117 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