java 獲取代碼註釋

1.今天來介紹工具獲取java代碼的註釋,以此來編寫自動生成文檔工具。

代碼:
先導入jdk的tools.jar包

public class Doclet {

    public static class Entry {
        /**參數名*/
        public String fName;
        /**類型*/
        public String fType;
        /**說明*/
        public String fExplain;

        public Entry(String fName, String fType, String fExplain) {
            super();
            this.fName = fName;
            this.fType = fType;
            this.fExplain = fExplain;
        }
    }

    private static RootDoc rootDoc;
    private String javaBeanFilePath;

    public Doclet(String javaBeanFilePath) {
        this.javaBeanFilePath = javaBeanFilePath;
    }

    public List<Entry> exec() {
        com.sun.tools.javadoc.Main.execute(new String[] { "-doclet", Doclet.class.getName(), "-docletpath",
                Doclet.class.getResource("/").getPath(), "-encoding", "utf-8", javaBeanFilePath });
        ClassDoc[] classes = rootDoc.classes();

        List<Entry> entrys = Lists.newArrayList();
        for (ClassDoc classDoc : classes) {
            FieldDoc[] fields = classDoc.fields(false);
            for (FieldDoc field : fields) {
                entrys.add(new Entry(field.name(), Type.type(field.type().typeName()), field.commentText()));
            }
            // 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');
            // }
        }
        return entrys;
    }

    public static boolean start(RootDoc root) {
        rootDoc = root;
        return true;
    }

    public static void main(String[] args) {
        Doclet doclet = new Doclet(
                "D:\\dev\\java_workspace\\git_pro\\yunji-groupbuy\\yunji-groupbuyapi\\src\\main\\java\\com\\yunji\\groupbuy\\bean\\response\\GroupbuyDetailVo.java");
        doclet.exec();
    }
}

上面會將指定的java源文件中的類的成員變量名稱,類型,註釋返回。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章