亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

宁蒗| 萨迦县| 河西区| 麻城市| 泰和县| 南丰县| 泸州市| 星座| 双流县| 招远市| 定兴县| 荥经县| 集安市| 平南县| 华亭县| 马鞍山市| 雅江县| 宝兴县| 武陟县| 上高县| 新化县| 普安县| 汉中市| 思茅市| 郯城县| 介休市| 鄂托克前旗| 尼勒克县| 南漳县| 蛟河市| 定兴县| 黄陵县| 大英县| 响水县| 红原县| 菏泽市| 比如县| 莲花县| 阿拉善盟| 锦屏县| 阿巴嘎旗|