作为一个例子,我有一个这样的.Java文件,
public class A {
private void callData() {
//There can be custom methods like this
checkImage("A",true);
checkObject("B","C",true);
}
}
我想读取这个方法的名称和参数。我不需要进入这些方法并获取值,但我想取名称和参数。这个A.java是一个位于我的机器上的文件。现在我想编写一个代码来读取这个方法名称和参数。我认为这很清楚:)
谢谢
答案 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;
}
为可能的正则表达式提供多种解决方案
(?:(?:public)|(?:private)|(?:static)|(?:protected)\s+)*
设计正则表达式后,您可以使用任何常规方法对匹配进行分组,并从匹配项中输出所需内容。
值得一提的是这种类型的程序解决方案,例如ANTLR可能很有用(但是过度使用,然后你需要扩展到方法头之外),因为它们可以生成一个完整的解析器供你使用。 / p>