千家信息网

Qdox工具怎么用

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章给大家介绍Qdox工具怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。QDox 一款简单,高效的Java源代码解析器,可以提取Java类、接口、方法、参数名称、类型等
千家信息网最后更新 2025年12月02日Qdox工具怎么用

这篇文章给大家介绍Qdox工具怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

QDox 一款简单,高效的Java源代码解析器,可以提取Java类、接口、方法、参数名称、类型等。简单介绍一下怎么用。

集成

目前最新版本2.0-M10
Maven

    com.thoughtworks.qdox    qdox    2.0-M10

Gradle

compile group: 'com.thoughtworks.qdox', name: 'qdox', version: '2.0-M10'
用法
package com.mini.test;import java.util.Random;/** * QDox 测试 * @author: jujun chen * @date: 2019/07/07 */public class TestClass extends BaseTestClass implements Test{    /**     * 登录接口     * @param userName 用户名     * @param password 密码     * @return Person对象     */    public Person Login(String userName, String password) {        int age = new Random().nextInt();        Person person = new Person(userName, password, age);        System.out.println(person);        return person;    }}class Person {    private String userName;    private String password;    private int age;    public Person(String userName, String password, int age) {        this.userName = userName;        this.password = password;        this.age = age;    }}class BaseTestClass {}interface Test {}

测试:

@Test    public void getMeClass() throws IOException {        JavaProjectBuilder builder =  new  JavaProjectBuilder();        builder.addSourceTree(new File("src/main/java/com/mini/test"));        //目录下的所有class        System.out.println("====目录下的所有class====");        Collection classes = builder.getClasses();        System.out.println(classes + "\n");        //根据class全限定名获取        JavaClass javaClass = builder.getClassByName("com.mini.test.TestClass");        //获取类的注释        System.out.println("====获取类的注释====");        System.out.println(javaClass.getComment());        List classTags = javaClass.getTags();        classTags.forEach(item -> {            System.out.println(item.getName() + "" + item.getValue());        });        System.out.println("\n");        //获取继承的父类        System.out.println("====获取继承的父类====");        System.out.println(javaClass.getSuperClass() + "\n");        //获取接口        System.out.println("====获取接口====");        System.out.println(javaClass.getImplements() + "\n");        //获取方法        System.out.println("====获取方法====");        List methods = javaClass.getMethods();        System.out.println(methods + "\n");        //get Login方法        JavaMethod javaMethod = methods.get(0);        //方法返回类型        System.out.println("====获取方法返回类型====");        System.out.println(javaMethod.getReturns() + "\n");        //获取参数        System.out.println("====获取参数====");        List parameters = javaMethod.getParameters();        System.out.println(parameters);        //获取参数类型        //get userName参数        JavaParameter parameter = parameters.get(0);        //参数名称        System.out.println(parameter.getName());        //参数类型        System.out.println(parameter.getType() + "\n");        System.out.println("====获取方法注释====");        //获取方法注释        System.out.println(javaMethod.getComment());        //获取参数备注        List tags  =javaMethod.getTags();        tags.forEach(item -> {            System.out.println(item.getName() + ":" + item.getValue());        });    }

测试结果:

====目录下的所有class====[class com.mini.test.TestClass, class com.mini.test.Person, class com.mini.test.BaseTestClass, interface com.mini.test.Test]====获取类的注释====QDox 测试author:jujun chendate:2019/07/07====获取继承的父类====com.mini.test.BaseTestClass====获取接口====[com.mini.test.Test]====获取方法====[public com.mini.test.Person com.mini.test.TestClass.Login(java.lang.String,java.lang.String)]====获取方法返回类型====com.mini.test.Person====获取参数====[String userName, String password]userNamejava.lang.String====获取方法注释====登录接口param:userName 用户名param:password 密码return:Person对象

使用该工具,可以解析Java源代码,很方便,速度也很快。脑洞一下吧,可以利用它来做点什么,提高生产力。

关于Qdox工具怎么用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0