中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Qdox工具怎么用

發布時間:2021-10-19 20:41:21 來源:億速云 閱讀:298 作者:柒染 欄目:大數據

這篇文章給大家介紹Qdox工具怎么用,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

QDox 一款簡單,高效的Java源代碼解析器,可以提取Java類、接口、方法、參數名稱、類型等。簡單介紹一下怎么用。

集成

目前最新版本2.0-M10
Maven

<dependency>
    <groupId>com.thoughtworks.qdox</groupId>
    <artifactId>qdox</artifactId>
    <version>2.0-M10</version>
</dependency>

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<JavaClass> 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<DocletTag> 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<JavaMethod> 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<JavaParameter> 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<DocletTag> 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 chen
date: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]
userName
java.lang.String

====獲取方法注釋====
登錄接口
param:userName 用戶名
param:password 密碼
return:Person對象

使用該工具,可以解析Java源代碼,很方便,速度也很快。腦洞一下吧,可以利用它來做點什么,提高生產力。

關于Qdox工具怎么用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高要市| 瑞昌市| 化隆| 莎车县| 武威市| 仁寿县| 册亨县| 无为县| 河东区| 林州市| 镇远县| 巴楚县| 关岭| 铜鼓县| 寻乌县| 临沧市| 永寿县| 怀柔区| 白沙| 平安县| 十堰市| 蕉岭县| 遂川县| 南宫市| 合作市| 京山县| 瓦房店市| 城市| 太康县| 清河县| 凌云县| 临漳县| 宜阳县| 汉沽区| 丹寨县| 隆尧县| 龙门县| 子长县| 奎屯市| 吴江市| 华容县|