某日工作时需要将类中所有方法详细信息收集到excel中,包括方法的参数注释信息,方法签名注释信息,返回值注释信息,方法上的注解信息,而我需要列举的类方法有80 90个那不是累死人。突然想到曾经写过通过javadoc获取注释信息的功能,而注解信息,通过jdk暴露出来的api 是获取不到,需要另辟蹊路,经过研究我发现sun.javadoc中有注解的信息,只是没有暴露出来,在他的com.sun.tools.javac.tree.JCTree.JCMethodDecl类中,我使用了反射私有属性获取到了该信息。现提供解决方案如下,供有需要的兄弟享用:
1、首先你使用sun.javadoc需要依赖jdk的tools.jar,在gradle中添加依赖
compile files("${System.properties['java.home']}/../lib/tools.jar")
2、代码调用
/**
*
*/
@Test
public void generateRestFullExcel() {
com.sun.tools.javadoc.Main
.execute(new String[] { "-doclet", Doclet.class.getName(), "-docletpath",
Doclet.class.getResource("/").getPath(), "-encoding", "utf-8", "-classpath",
"D:/xxx/bin;",
"D:/xxx/xxx.java" });
JSONArray datas = show();
String[] title = { "方法名称", "方法说明", "入参", "出参", "注解" };
// 创建excel工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建工作表s