JavaWeb 注解Annotation的使用

1、需求:创建一个自定义的Junit注解@MyTest

2、建测试类DemoTest.java

			public  class  DemoTest1{
				@MyTest
				public  void  test1(){
					s.o.p("test1执行了");
				}

				public  void  test2(){
					s.o.p("test2执行了");
				}
			}
3、定义注释 @MyTest

			public  @interface  MyTest{

			}
4、利用反射机制,建立 @MyTest 的运行类

			public  class  MyJunitRunner{
				/*
				 *  反射注解思路:
				 *	取得类的字节码;
				 *	反射其中的成员,此处就是方法成员;
				 *	看谁的上面有 MyTest 注解
				 *	谁有就运行谁
				 *
				 */
				public  static  void  main(String[]  args)  throws  Exception{
					// 取得类的字节码;
					Class  clazz  =  DemoTest1.class;

					//反射其中的成员,此处就是方法成员;
					Method  methods[]  =  clazz.getMethods();	// 得到 DemoTest1 中所有共有的方法

					//看谁的上面有 MyTest 注解
					for(Method  m: methods){
						boolean  b = m.isAnnotationPresent(MyTest.class);
						s.o.p(b+"======="+m.getName());
						//谁有就运行谁
						if(b){
							m.invoke(clazz.newInstance(),  null);
						}
					}

				}
			}
5、此时运行,没有任何一个 b 会显示 true。原因为在步骤3 中没有给注解添加“元注解”:

				@Retention(RetentionPolicy.RUNTIME)
				@Target( (ElementType.FIELD;  ElementType.MOTHOD) )	//  说明 MyTest 注解只能在字段或者方法上使用
				public  @interface  MyTest{

				}
6、再次运行,成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值