首页 > 编程语言 >Java转UML类图实现方法

Java转UML类图实现方法

时间:2024-06-05 18:34:12浏览次数:24  
标签:github java javaparser ClassOrInterfaceDeclaration 类图 Java import UML com

一、maven依赖

<dependency>
    <groupId>com.github.javaparser</groupId>
    <artifactId>javaparser-core</artifactId>
    <version>3.26.0</version>
</dependency>

二、解析Java文件类关系

import com.github.javaparser.JavaParser;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;

import java.io.File;
import java.io.IOException;

public class JavaToUmlConverter {
    public static void main(String[] args) throws IOException {
        File javaFile = new File("path/to/java/file.java");
        CompilationUnit cu = JavaParser.parse(javaFile);

        for (ClassOrInterfaceDeclaration clazz : cu.findAll(ClassOrInterfaceDeclaration.class)) {
            System.out.println("Class: " + clazz.getName());
        }
    }
}

三、java转U ML

import com.github.javaparser.JavaParser;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;

import java.io.File;
import java.io.IOException;

public class JavaToUmlConverter {
    public static void main(String[] args) throws IOException {
        File javaFile = new File("path/to/java/file.java");
        CompilationUnit cu = JavaParser.parse(javaFile);

        StringBuilder umlCode = new StringBuilder();
        umlCode.append("@startuml\n");

        for (ClassOrInterfaceDeclaration clazz : cu.findAll(ClassOrInterfaceDeclaration.class)) {
            umlCode.append("class ").append(clazz.getName()).append(" {}\n");
        }

        umlCode.append("@enduml");

        System.out.println(umlCode.toString());
    }
}

 

标签:github,java,javaparser,ClassOrInterfaceDeclaration,类图,Java,import,UML,com
From: https://www.cnblogs.com/luoxh-whn/p/18233555

相关文章

  • Java开发必备软件工具
            Java开发工程师在进行后端开发项目时,可能会使用到一系列的软件和工具,以完成从编码、构建、测试到部署的整个流程。以下是一些常见的软件和工具列表:开发工具包(JDK)OracleJDK/OpenJDK:提供Java运行环境和编译工具。集成开发环境(IDE)IntelliJIDEA:......
  • Java线程池分类简单列举
    一、Java四种线程池Java通过Executors提供四种线程池,分别为newSingleThreadExecutor创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO,LIFO,优先级)执行。newFixedThreadPool创建一个定长线程池,可控制线程最大并发数,超出......
  • 线程池的拒绝策略(Java)
    java线程池的拒绝策略Java中的线程池拒绝策略定义了当任务无法执行时如何处理这些任务。以下是Java中常见的拒绝策略:一、CallerRunsPolicy#:当任务被拒绝添加时,如果调用者所在的线程不是线程池中的线程,那么任务将由该调用者所在的线程直接执行。ExecutorServiceexecutor......
  • Java环境配置(超详细)
    Java环境配置(超详细)引言1、安装JDK1.1、下载安装JDK1.2、配置环境变量:JAVA_HOME1.3、将JAVA_HOME添加到Path中2、安装Maven2.1、下载安装Maven2.2、配置maven的环境变量:M2_HOME2.3、将Maven变量添加到Path中引言Java开发环境的配置主要是安装JDK和Maven。1、......
  • Java1.8语言+ springboot +mysql + Thymeleaf 全套家政上门服务平台app小程序源码
    Java1.8语言+springboot+mysql +Thymeleaf 全套家政上门服务平台app小程序源码家政系统是一套可以提供上门家政、上门维修、上门洗车、上门搬家等服务为一体的家政平台解决方案。它能够与微信对接、拥有用户端小程序,并提供师傅端app,可以帮助创业者在不需要相关技术人员及......
  • JavaScript-匿名函数
    原文链接:https://blog.csdn.net/weixin_45203607/article/details/124227504什么是匿名函数1、匿名函数,即没有名称的函数2、如果单独只写一个匿名函数,此时是不符合语法要求的会报错。需要给匿名函数包裹一个括号,使之成为表达式。3、被小括号包裹的内容会被js识别为一个函数表......
  • 每天坚持写java锻炼能力---第一天(6.4)
    今天的目标是菜单:B站/马士兵的项目菜单packagejava1;importjava.util.Scanner;publicclassTest{publicstaticvoidmain(String[]args){while(true){//3.加入死循环,让输入一直有System.out.println();System.out.print......
  • zookeeper:Unexpected exception, exiting abnormally ::java.io.EOFException
    转载请注明出处:服务器中断,重启服务器在重启kafka服务时,遇到如下报错:2024-06-0513:52:56,251[myid:]-ERROR[main:ZooKeeperServerMain@64]-Unexpectedexception,exitingabnormallyjava.io.EOFExceptionatjava.io.DataInputStream.readInt(DataInputStream.j......
  • javaScript高级23_事件4
    一、概念某些组件被执行了某些操作后,触发某些代码的执行。事件:某些操作。如:单击,双击,键盘按下了,鼠标移动了事件源:组件。如:按钮文本输入框...监听器:代码。注册监听:将事件,事件源,监听器结合在一起。当事件源上发生了某个事件,则触发执行某个监听器代码。二、常见的事件......
  • Redis——Java的客户端
    Java的客户端在Redis官网中提供了各种语言的客户端,地址:https://redis.io/clientsjedisjedis的官网地址:https://github.com/redis/jedis1.引入依赖<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>5.0......