这篇文章给大家介绍Qdox工具怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
QDox一款简单,高效的爪哇源代码解析器,可以提取爪哇类、接口、方法、参数名称、类型等。简单介绍一下怎么用。
集成
目前最新版本2.0-M10
专家
属国
groupIdcom.thoughtworks.qdox/groupId
artifactIdqdox/artifactId
2.0版-M10/版
/dependencyGradle
compilegroup : ' com。思想工作。qdox ',名称为:'qdox ',版本为: ' 2.0-M10 '
用法
package com。迷你。测试;
导入Java。乌提尔。随机的;
/**
*QDox测试
* @作者: juchinchen
*@date:2019/07/07
*/
公共类testclassextendbase test class implementstest {
/**
*登录接口
*@paramuserName用户名
*@parampassword密码
*@returnPerson对象
*/
公众人物登录(字符串用户名,字符串密码){ 0
intage=newRandom().nextInt();
Personperson=newPerson(用户名、密码、年龄);
系统。出去。println(人);
返回者;
}
}
classPerson{
privateStringuserName
privateStringpassword
私人占有;
publicPerson(StringuserName,Stringpassword,intage){ 0
this.userName=用户名;
this.password=password
this.age=年龄;
}
}
类别
bsp;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工具怎么用就分享到这里了,希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/37096.html
