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()不需要测试