java-javaParse解析类的方法名称,行数等
import com.github.javaparser.JavaParser; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.PackageDeclaration; import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; import com.github.javaparser.ast.body.MethodDeclaration; import com.github.javaparser.ast.visitor.VoidVisitorAdapter; import java.io.FileInputStream; public class Test { public static void main(String[] args) throws Exception{ FileInputStream in = new FileInputStream("/proj/javaparse/src/main/java/modd/dd/dda/Course.java"); // parse the file CompilationUnit cu = JavaParser.parse(in); // prints the resulting compilation unit to default system output // System.out.println(cu.toString()); cu.accept(new MethodVisitor(), null); } private static class MethodVisitor extends VoidVisitorAdapter<Void> { @Override public void visit(MethodDeclaration n, Void arg) { /* here you can access the attributes of the method. this method will be called for all methods in this CompilationUnit, including inner class methods */ System.out.println("method:"+n.getName()); super.visit(n, arg); } @Override public void visit(ClassOrInterfaceDeclaration n, Void arg) { System.out.println("class:"+n.getName()); System.out.println("extends:"+n.getExtendedTypes()); System.out.println("implements:"+n.getImplementedTypes()); super.visit(n, arg); } @Override public void visit(PackageDeclaration n, Void arg) { System.out.println("package:"+n.getName()); super.visit(n, arg); } } }
//只有parser <dependency> <groupId>com.github.javaparser</groupId> <artifactId>javaparser-core</artifactId> <version>3.6.5</version> </dependency> //或者 //symbolsolver 和 parser <dependency> <groupId>com.github.javaparser</groupId> <artifactId>javaparser-symbol-solver-core</artifactId> <version>3.6.5</version> </dependency>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)