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源文件中的类的成员变量名称,类型,注释返回。