自定义注解
作用
- 编译检查
- 配置
- 生成帮助文档
注解的特点
注解可以在变量,方法,类之上加载
注解可以有属性也可以没有属性 @Override @Test(timeout=1000)
注解有作用范围(源码,编译期间,运行期间)
- 源码期间有效: String类之上@Author,@Since,@See
- 编译期间有效: @Override @Deprecated @Suppresswarning
- 运行期间有效: @Test
自定义注解
格式:
public @interface 注解名称{
public 属性类型 属性名称1();
public 属性类型 属性名称2() default 默认值;
}
自定义注解属性支持的类型:
基本数据类型(4类8种),String,Class,Annotation(注解类型),枚举类型,
以及以上类型的一维数组类型
Junit的源码思路
就是另外一个main()方法,用反射的方法加载类,然后继续用反射获取方法,遍历方法里面对于有注解(isAnnotationPresent(MyTest.class)),继续用反射的方法加这些方法,反射invoke执行这些方法