什么是注解:
一个注解就是一个类,注解相当于一种标记,加了注解就等于打上了某种标记,没加的话就没有。
javac编译器、开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有
什么标记,就去做相应的操作。
这个标记可以位于包、类、字段、方法、方法的参数以及局部变量上。
一些简单的注解:
@SuppressWarning 压缩警告
@Deprecated 过时
@Override 覆盖
元注解:加在注解类上的注解称为元注解。可用来设置这个注解的生命周期以及作用范围等属性。
一个注解的生命周期有三个阶段:
1,java源文件(SOURCE)
2,class文件(CLASS)
3,内存中的字节码(RUNTIME)
定义一个自己的注解
1,定义一个最简单的注解。
2,把它加在某个类上。
3,用反射进行测试这个类的定义上是否有这个注解
根据上例中反射测试的问题引出@Retention元注解,其有三种取值,分别对应注解的三个生命周期
RetentionPolicy.SOURCE --------对应java源文件
RetentionPolicy.CLASS------------对应class文件
RetentionPolicy.RUNTIME--------对应内部中的字节码
注解的内部也可以定义一些属性变量,当这个注解被加到某个类上时,必须设置这些属性变量,也可以为其设置默认值。
例如下面的例子就是一个注解中的属性到加载了这个注解的类中去设置。
ItCast注解:
加载了Itcast注解的类: