1.注解应用:模拟junit框架(案例)
需求:
定义若干方法,只要加了注解@MyTest 就可以在启动时被触发执行
注意:
1.是公开的 无参数 没有返回值的方法。
2.测试方法使用@MyTest注解标记
分析:
- 定义一个自定义注解@MyTest,只要注解方法,存活范围是一直都在。
代码实现:
@Retention(RetentionPolicy.RUNTIME)//一直存活,在运行阶段这个注解也不会消失
@Target(ElementType.METHOD)//元注解
public @interface MyTest {
}
- 定义若干方法,只要加了注解@MyTest 就可以在启动时被触发执行;没有这个注解的方法就不能执行。
代码实现:
public class AnnationDemo {
@MyTest
public void test1(){
System.out.println("test1_____");
}
public void test2(){
System.out.println("test2_____");
}
@MyTest
public void test3(){
System.out.println("test3_____");
}
//启动菜单 有注解的才被调用
public static void main(String[] args) throws InvocationTargetException, IllegalAccessException {
//创建对象
AnnationDemo t=new AnnationDemo();
//获取类对象
Class<?> a1= AnnationDemo.class;
//获取全部方法
Method[] methods= a1.getDeclaredMethods();
//遍历全部方法 是否有MyTest注解 有就可以跑
for (Method method : methods) {
if (method.isAnnotationPresent(MyTest.class)){
//说明有注解 可以跑
method.invoke(t);
}
}
}
}