我有一个Java源文件。我想解析它以找到方法调用发生的位置。例如,它可以找到电话:
obj.callingMethod1();
我也希望能够用不同的电话取代。例如,我可能会将其替换为:
obj2.callingMethod2();
但是每个东西都是动态的,这意味着我们可能会有一些带参数的方法调用,等等。我发现了很多java的解析器,但我想知道是否有任何解析器已经为java语法编写了?我的意思是它有能力找到java方法调用,java方法定义,java变量定义和...感谢但是,我想知道一种方法来做到这一点,考虑到不同方法调用的动态可能性,即那里可能是带参数的方法调用等。我发现了很多Java解析器,但我想知道是否有专门用于Java语法的解析器。我正在寻找能够找到java方法调用,java方法定义,java变量定义等的东西。
答案 0 :(得分:2)
您的问题无法解释java代码是否出现在文本中,或者文本是否为java代码。
根据你所说的可能
1)有文本和java代码,文本和java代码之间有分界线 2)有文本和java代码,没有分界。 3)文本是java代码。
如果你需要的是(1)或(3)那么我会使用JavaCC:http://www.engr.mun.ca/~theo/JavaCC-Tutorial/javacc-tutorial.pdf
如果您需要的是(2)那么除了String.replaceAll(...)