0

好吧,我需要从用户那里接收一个类,例如:MyClass.java。我的程序需要读取所有类并识别:方法、类属性和类名。

所以我认为在一些可能性:

1 - 使用反射更快地完成此任务,但反射的问题是我需要一个 MyClass.class(字节码)并且用户将发送一个“.java”,因此反射被丢弃。

2 - 创建一个包含大量正则表达式的超级算法来完成这项任务。这个解决方案可以工作,但这个正则表达式将非常复杂。

3 - 创建一些基于 BNF 语法的解析器来完成这项任务。我认为这是更简单的解决方案,但我不知道如何从这一点开始。

好吧,我希望你能帮助我找到更好的解决方案。

4

2 回答 2

0

您可能可以使用诸如PMD之类的代码分析器。它包括用于不同版本的 java 的解析器。

于 2013-09-16T21:05:46.660 回答
0

我建议你看看 Java 解析器,它是开源的,除其他外,做你正在寻找的东西:

https://code.google.com/p/javaparser/wiki/UsingThisParser

于 2013-09-16T21:34:42.110 回答