我发现 Java Literals 是布尔、字符、数字或字符串数据的语法表示。
我的问题是如何以编程方式在 java 类中查找文字?
如果有人可以为我提供如何实现这一目标的指导,那将是一个很大的帮助。
您应该使用 Java 代码解析器,例如 Eclipse JDT 工具中包含的 ASTParser。
// Create the Java parser and parse the source code into an abstract syntax tree
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource(sourceCodeString.toCharArray());
CompilationUnit result = (CompilationUnit) parser.createAST(null);
result.accept(new ASTVisitor() {
public boolean visit(NumberLiteral n) {
System.out.println("Found number literal in source code: " + n.getToken());
}
});
然后,您可以浏览 AST(抽象语法树)并提取您感兴趣的内容。
您还可以查看执行您想做的工具的源代码,例如 PMD 或 Findbugs(尽管后者在已编译的类上运行,而不是在源代码上运行)。