AI编程可视化Java项目拆解第一弹,解析本地Java项目

之前分享过一篇使用 AI 可视化 Java 项目的文章,同步在 AI 破局星球、知乎、掘金等地方都分享了。

原文在这里AI 编程:可视化 Java 项目

有很多人感兴趣,我打算写一个系列文章拆解这个项目,大家多多点赞支持~

今天分享的是第一篇:如何使用 Spoon + JavaParser 工具解析一个本地的 Java 项目。

解析这一步骤是整个项目的基础,是为了获得整个 Java 项目的元数据。

这个元数据包含什么呢?1)整个项目的所有的类信息;2)整个项目的所有方法信息

方法信息

序号 字段名称 字段描述
1 method_id 方法唯一id标识
2 project_name
3 method_name 方法名
4 class_id 方法所属类名
5 param_type 参数类型
6 response_type 返回类型
7 begin_line 方法内容开始行
8 end_line 方法内容结束行
9 branch 分支
10 method_desc 方法描述
11 chat_desc GPT 描述
12 invoke_count 被调用数量
13 mermaid_flow_graph 流程图数据
14 flow_graph_ignored 是否忽略流程图
15 annotation_info 注解信息
16 annotation_type 注解类型
17 access_modifier 修饰符

类信息

序号 字段名称 字段描述
1 class_id 类唯一标识
2 class_name 类名
3 project_name 项目唯一标识
4 package_name 包名
5 branch 分支
6 class_type 类的类型
7 chat_desc GPT 类描述
8 class_desc 类注释
9 annotation_info 类注解
10 method_annotation_info 方法注解信息
11 annotation_type 注解类型

怎么拿到整个项目的类信息和方法信息呢?

首先我们需要一个类解析器、一个方法解析器。使用 Java 的反射,我们就能拿到具体类和方法的详细信息。

类解析器代码:

public void execute(List<CtType<?>> elements) {
   
   
        classStructs = Lists.newArrayList();
        for (CtType<?> type : elements) {
   
   
            try {
   
   
                // 匿名内部类和泛型会跳过解析
                if (type.isAnonymous()) {
   
   
                    continue;
                }
                if (Objects.isNull(type.getPackage())) {
   
   
                    continue;
                }
                // 获取类的简单类名
                String simpleClassName = type.getSimpleName();
                // GPT 接口获取解释
                String chatDesc = "";
                // 获取类所属包
                String packageName = type.getPackage().getQualifiedName();
                // 获取类注释信息
                String classComment = type.getDocComment();
                // 判断接口还是类
                ClassType classType = getClassType(type);
                // 获取类注解信息
                List<AnnotationInfo> annotationInfos = Lists.newArrayList();
                List<CtAnnotation<?>> annotations = type
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伍六七AI编程

你猜你给我1分我要不要

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值