这篇文章给大家介绍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工具怎么用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/itsaysay/blog/3070698