【发布时间】:2019-10-06 08:03:11
【问题描述】:
我正在寻找一个 Java 库(源代码解析器),它可以帮助我提取源代码中使用的所有类名的非限定名称。例如对于给定的代码示例:
public class Example {
private ClassName1;
protected ClassName2 instance = new ClassName2();
public Example() {
ClassName3 test = new ClassName3();
}
public doSomething() {
//ClassName4 test = new ClassName4("SomeExampleString");
ClassName5 test = new ClassName5("ExampleString2");
}
}
我需要得到以下列表:
ClassName1, ClassName2, ClassName3, ClassName5
因为这是源代码中“使用”的所有类名称的列表。
到目前为止,我已经尝试编写一个简单的解析器来为我做这件事,但不够健壮,无法在现实世界中使用。我也研究了一些 Java 解析器,但问题是我不知道如何调用这个问题来研究他们的代码以寻找解决方案,我相信这存在于现有 Java 解析器的领域中。
所以我正在寻找的是一个 Java 源解析器,它可以让我获得一个类名列表,如示例中的类名列表和一个关于如何实现此目标或方向的简短示例正确调用。
注意:我不是在寻找一种方法来检测 JVM 加载的所有类或类路径中的类,而是一种通过解析未编译的原始 Java 源代码来检测文本意义上的类的方法。
【问题讨论】:
标签: java parsing javaparser