您好,登錄后才能下訂單哦!
這篇文章給大家介紹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工具怎么用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。