gpt4 book ai didi

java - 如何使用 JavaParser 解析方法或任何其他有效表达式

转载 作者:行者123 更新时间:2023-12-02 07:26:07 26 4
gpt4 key购买 nike

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

最佳答案

我发现您可以将该方法包含在虚拟类中并像往常一样解析它。对于您提供的示例,请将其包含在里面:

public class DUMMY_CLASS_FOO {

// The string you're trying to parse (method or whatever)

}

然后你像往常一样解析它并在解析时忽略你的虚拟类。

更新:

对于您提供的更新,您可以 try catch

如果之前的封装没有做到这一点,那么将其封装到:

public class DUMMY_CLASS_FOO {

public void DUMMY_METHOD_FOO {

// Anything here

}
}

您还可以搜索访问级别修饰符(公共(public)、私有(private)等),如果找到,请执行第一个解决方案。如果没有找到,则执行另一个。

关于java - 如何使用 JavaParser 解析方法或任何其他有效表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13559315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com