转载:https://www.jianshu.com/p/11adf2e2d000
工具/测试
package com.example.test.Util; import com.sun.javadoc.ClassDoc; import com.sun.javadoc.FieldDoc; import com.sun.javadoc.MethodDoc; import com.sun.javadoc.RootDoc; import java.util.ArrayList; /** * @author: Tyler * @createDate: 2022/2/8 */ public class Doclet { /** * 测试 */ public static void main(String[] args) { //java源文件的路径 ArrayList<String> sources=new ArrayList<>(); //项目名开始的路径 sources.add("../test/src/main/java/com/example/test/model/Message.java"); //打印 println(sources); } /** * 打印类及其字段、方法的注释 * * @param sources java源文件路径 */ public static void println(ArrayList<String> sources) { ArrayList<String> list=new ArrayList<>(); list.add("-doclet"); list.add(Doclet.class.getName()); list.addAll(sources); com.sun.tools.javadoc.Main.execute(list.toArray(new String[list.size()])); StringBuilder buffer=new StringBuilder(); ClassDoc[] classes=Doclet.root.classes(); for(ClassDoc classDoc:classes) { buffer.append(classDoc.name()).append('\n'); buffer.append('\t').append(classDoc.commentText()).append('\n'); buffer.append('\t').append("字段").append('\n'); FieldDoc[] fields=classDoc.fields(false); for(FieldDoc field:fields) { buffer.append('\t').append('\t').append(field.name()).append('\n'); buffer.append('\t').append('\t').append('\t').append(field.commentText()).append('\n'); //字段上的注释 } buffer.append('\t').append("方法").append('\n'); MethodDoc[] methods=classDoc.methods(); for(MethodDoc method:methods) { buffer.append('\t').append('\t').append(method.name()).append('\n'); buffer.append('\t').append('\t').append('\t').append(method.commentText()).append('\n'); //方法上的注释 } } System.out.println(buffer); } /** 文档根节点 */ private static RootDoc root; /** * javadoc调用入口 * * @param root * @return */ public static boolean start(RootDoc root) { Doclet.root=root; return true; } }
实体:
package com.example.test.model; /** * @author: Tyler * @createDate: 2022/2/8 */ public class Message { /** * 主键id */ private int id; private String subject; private String content; public int getId() { return id; } public void setId(int id) { this.id = id; } /** * 主题 */ public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } /** * 内容 */ public String getContent() { return content; } public void setContent(String content) { this.content = content; } }