好吧,我需要从用户那里收到一个类,比如:MyClass.java。我的程序需要读取所有类并标识:方法,类属性和类名。
我想在某些可能性中:
1 - 使用Reflection更快地完成这项任务,但反射的问题是我需要一个MyClass.class(字节码),用户将发送一个“.java”,因此反射被丢弃。
2 - 创建一个包含大量正则表达式的超级算法来完成此任务。这个解决方案可以工作,但这个正则表达式将非常复杂。
3 - 基于BNF语法创建一些解析器来完成此任务。我认为这是更容易解决的问题,但我不知道如何从这一点开始。
好吧,我希望你能帮助我找到更好的解决方案。
答案 0 :(得分:0)
您可以使用代码分析器,例如PMD。它包括不同版本的java的解析器。
答案 1 :(得分:0)
我建议你看一下Java解析器,它是开源的,除其他外,你正在寻找你想要的东西: