java获取类与方法的注解、注释

tech2023-12-25  89

第一、获取注解

@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(); }
最新回复(0)