扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章给大家介绍Qdox工具怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联建站服务项目包括托克托网站建设、托克托网站制作、托克托网页制作以及托克托网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,托克托网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到托克托省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
QDox 一款简单,高效的Java源代码解析器,可以提取Java类、接口、方法、参数名称、类型等。简单介绍一下怎么用。
目前最新版本2.0-M10
Maven
com.thoughtworks.qdox qdox 2.0-M10
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===="); Collectionclasses = 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 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 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 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 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工具怎么用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流