---恢复内容开始---
1.什么是注解
注解(也称元数据)为我们在代码中添加信息提供了一种形式化方法,我们可以在编程时非常方便的使用这些数据。
2.Java中内置的三大标准注解
@Override 表示当前的方法覆盖父类(超类)的方法。如果不小心拼写错误或者方法签名跟覆盖的方法对不上时,编译器会发出错误提示。
@Deprecated 使用此注解表示该方法已过期,但是也可以使用,在编译时会发出告警信息。
@SuppressWarnings 关闭当前编译器的告警信息。
另外还有四中元注解专门负责新注解的创建:
3.定义注解及使用
a.定义注解
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 测试注解
* Created by qiqi on 2019/9/4 16:51
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TestCase {
public int id();
public String description() default "no description";
}
b.使用注解
/**
* 注解实例
* Created by qiqi on 2019/9/4 16:54
*/
public class PasswordUtils {
@TestCase(id = 14, description = "这是描述")
public boolean validPassword() {
return true;
}
}
c.使用Java中的反射来定义注解处理器
import java.lang.reflect.Method;
/**
* Created by qiqi on 2019/9/4 16:57
*/
public class AnnotaionTest {
public static void main(String[] args) {
test(PasswordUtils.class);
}
public static void test(Class<?> cl) {
for (Method m : cl.getDeclaredMethods()) {
TestCase tc = m.getAnnotation(TestCase.class);
if (null != tc) {
System.out.println("这是测试用例 id:"+tc.id()+" 说明:"+ tc.description());
}
}
}
}
d,执行结果
这是测试用例 id:14 说明:这是描述