我想在.java文件中读取包含方法,如下所示,

时间:2016-11-20 12:22:31

标签: java

作为一个例子,我有一个这样的.Java文件,

public class A {

   private void callData() {

       //There can be custom methods like this
       checkImage("A",true);
       checkObject("B","C",true);
   }
}

我想读取这个方法的名称和参数。我不需要进入这些方法并获取值,但我想取名称和参数。这个A.java是一个位于我的机器上的文件。现在我想编写一个代码来读取这个方法名称和参数。我认为这很清楚:)

谢谢

1 个答案:

答案 0 :(得分:0)

大多数问题应该尽可能包含您已经尝试过的最简单的示例,因为它可以帮助我们更有效地解决您使用代码时遇到的问题。无论如何,如果您不想要一个更完整的代码解析解决方案,那么您应该使用正则表达式来选择方法标题和参数:

首先阅读你的文件,你可以看到来自@Grimy的不同版本的java here的例子:

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public String readFile(String filename)
{
    String content = null;
    File file = new File(filename); //for ex foo.txt
    FileReader reader = null;
    try {
        reader = new FileReader(file);
        reader.close();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if(reader !=null){reader.close();}
    }
    return content;
}

然后您可以使用herehere

为可能的正则表达式提供多种解决方案
(?:(?:public)|(?:private)|(?:static)|(?:protected)\s+)*

设计正则表达式后,您可以使用任何常规方法对匹配进行分组,并从匹配项中输出所需内容。

值得一提的是这种类型的程序解决方案,例如ANTLR可能很有用(但是过度使用,然后你需要扩展到方法头之外),因为它们可以生成一个完整的解析器供你使用。 / p>