JavaParser是一个java源代码解析工具。我阅读了这些文档,但发现它只能解析完整java类的源代码,如:
public class X {
public void show(String id) {
Question q = Quesiton.findById(id);
aaa.BBB.render(q);
}
}
但我只想解析其中的一部分,例如方法声明:
public void show(String id) {
Question q = Quesiton.findById(id);
aaa.BBB.render(q);
}
怎么做或有可能吗?如果没有,是否还有其他工具可以做到这一点?
更新
实际上我想解析java中的任何有效表达式,所以我可以使用JavaParser轻松完成这个:
CompilationUnit unit = JavaParser.parse(codeInputStream);
addField(unit, parseField("public String name")); // not possible now
答案 0 :(得分:2)
我看到你可以在虚拟类中包含该方法并像往常一样解析它。对于您提供的示例,请将其包含在内:
public class DUMMY_CLASS_FOO {
// The string you're trying to parse (method or whatever)
}
然后你像往常一样解析它,并在解析时忽略你的虚拟类。
<强>更新强>
对于您提供的更新,您可以尝试抓住
如果之前的机箱没有这样做,请将其括起来:
public class DUMMY_CLASS_FOO {
public void DUMMY_METHOD_FOO {
// Anything here
}
}
您也可以搜索访问级别修饰符(公共,私有等),如果找到,请执行第一个解决方案。如果没有找到,请做另一个。