我希望解析Java源代码文件,并提取方法源代码。
我需要这样的方法:
/** Returns a map with key = method name ; value = method source code */
Map<String,String> getMethods(File javaFile);
有没有简单的方法可以做到这一点,有一个库可以帮助我构建方法,等等?
从https://javaparser.org/下载Java解析器
您必须编写一些代码。此代码将调用解析器…它将返回一个CompilationUnit:
InputStream in = null;
CompilationUnit cu = null;
try
{
in = new SEDInputStream(filename);
cu = JavaParser.parse(in);
}
catch(ParseException x)
{
// handle parse exceptions here.
}
finally
{
in.close();
}
return cu;
注意:SEDInputStream是输入流的子类。您可以根据需要使用FileInputStream。
您必须创建一个访客。您的访问者会很轻松,因为您仅对方法感兴趣:
public class MethodVisitor extends VoidVisitorAdapter
{
public void visit(MethodDeclaration n, Object arg)
{
// extract method information here.
// put in to hashmap
}
}
要调用访客,请执行以下操作:
MethodVisitor visitor = new MethodVisitor();
visitor.visit(cu, null);
本文向大家介绍Java源码解析Integer方法解读,包括了Java源码解析Integer方法解读的使用技巧和注意事项,需要的朋友参考一下 toUnsignedString方法解读 看到Integer中有这样的一个方法把int转为Unsigned类型的字符串,但是有几个点不是很清楚,经过查询资料弄懂了,解读如下: 这里的参数shift是代表的进制,如果是二进制的话shift是2,八进制那么就是8,
本文向大家介绍java 源码分析Arrays.asList方法详解,包括了java 源码分析Arrays.asList方法详解的使用技巧和注意事项,需要的朋友参考一下 最近,抽空把java Arrays 工具类的asList 方法做了源码分析,在网上整理了相关资料,记录下来,希望也能帮助读者! Arrays工具类提供了一个方法asList, 使用该方法可以将一个变长参数或者数组转换成List 。
本文向大家介绍Java Reference源码解析,包括了Java Reference源码解析的使用技巧和注意事项,需要的朋友参考一下 Reference对象封装了其它对象的引用,可以和普通的对象一样操作,在一定的限制条件下,支持和垃圾收集器的交互。即可以使用Reference对象来引用其它对象,但是最后还是会被垃圾收集器回收。程序有时候也需要在对象回收后被通知,以告知对象的可达性发生变更。 J
问题内容: 我需要以下工具: 方便地解析Java源代码并轻松访问给定的元素。 轻松生成源代码文件,轻松将数据结构转换为代码 有什么好的技巧,库,框架,工具吗?谢谢你的帮助。 问题答案: 从Java 6开始,编译器在JDK中包含一个API。通过它,您可以通过API 访问Java解析器的结果。JDK5以Mirror API 的形式提供了相同的功能。有一个很好的介绍性文章在这里。 我见过的最好的代码生成
本文向大家介绍JDK的Parser来解析Java源代码详解,包括了JDK的Parser来解析Java源代码详解的使用技巧和注意事项,需要的朋友参考一下 在JDK中,自带了一套相关的编译API,可以在Java中发起编译流程,解析Java源文件然后获取其语法树,在JDK的tools.jar(OSX下可以在/Library/Java/JavaVirtualMachines/jdk_version/Con