第一、获取注解
@Test(description = "获取类、方法注解")
public void test(){
//类注解信息
Annotation[] annotations = zwliu.class.getAnnotations();
String s = annotations[0].toString();
System.out.println(s);
//方法的注解信息
Method[] methods = zwliu.class.getMethods();
Annotation[] declaredAnnotations = methods[0].getDeclaredAnnotations();
String s2 = declaredAnnotations[0].toString();
System.out.println(s2);
}
第二、获取注释
原理:使用jdk自带的javadoc解析类、方法的注释
maven依赖
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
/**
* 显示DocRoot中的基本信息
*/
public void show(){
ClassDoc[] classes = rootDoc.classes();
for(ClassDoc classDoc : classes){
System.out.println("------------------------------------------------");
System.out.println(classDoc.name()+
"类的注释:"+classDoc.getRawCommentText());
MethodDoc[] methodDocs = classDoc.methods();
for(MethodDoc methodDoc : methodDocs){
// 打印出方法上的注释
System.out.println("方法名称:"
+methodDoc.name()+"\n"
// +methodDoc.name()+
+"方法注释:"+"\n"
+methodDoc.commentText());
}
}
}
@Test(description = "获取类、方法注释")
public void test2() {
String property = System.getProperty("user.dir");
com.sun.tools.javadoc.Main.execute(new String[] {"-doclet",
Doclet.class.getName(),
"-encoding",
"utf-8",
property+"\\src\\main\\java\\com\\test\\testCase\\zwliu.java",
property+"\\src\\main\\java\\com\\test\\testCase\\zwliu2.java"
});
show();
}