java中注解不会影响程序的运行,但是第三方程序或工具可以利用代码中的注解完成特殊的任务,间接控制程序的运行。
小例子:
定义一个简单的注解类:
@Retention(RetentionPolicy.RUNTIME)//声明注解的保留期限 @Target(ElementType.METHOD)//声明可以使用该注解的目标类型,method表示为方法上的注解 public @interface NeedTest {//定义注解 boolean value() default true;//声明注解成员 }
使用注解:
public class ForumService {@NeedTest(value=true)public void deleteForum(int forumId){System.out.println("删除呢论坛模块:"+forumId); }@NeedTest(value=false)public void deleteTopic(int postId){System.out.println("删除论坛主题:"+postId); } }
访问注解:
public class ToolTest {@Test public void tool(){Class clazz= ForumService.class; Method[] methods=clazz.getDeclaredMethods(); System.out.println(methods.length); for(Method method:methods){NeedTest nt=method.getAnnotation(NeedTest.class); if(nt!=null){if(nt.value()){System.out.println(method.getName()+"()需要测试"); }else {System.out.println(method.getName()+"()不需要测试"); }}}} }
2
deleteForum()需要测试
deleteTopic()不需要测试