内置注解
@Override
定义在java.lang包中,此注释只适用于修饰方法,表示一个方法声明打算重写超类中的另外一个方法声明
@Depercated
定义在java.lang包中,此注释用于修饰方法、属性、类,表示所定义的东西不鼓励使用,因为其很危险或者有其他更好的选,当使用所修饰的这个方法时,方法中间会带有一条划掉的横线
@SuppressWarnings
定义在java.lang包中,用来抑制编译时的警告信息,与前两个不同,这个需要在括号中添加参数才能正确使用,如:@SuppressWarnings(“all”)
元注解
元注解的作用就是负责注解其他注解,Java定义了4个标准的meta-annotation类型,他们被用来提供对其他annotation类型说明
这些类型和他们所支持的类在java.lang包中可以找到,如**@Taget,@Retention,@Documented,@Inherited**
@Taget
用于描述注解的使用范围(即:被描述的注解可以用在说明地方)
@Retention
表示需要在什么级别保存该注释信息,用于描述注解的生命周期(SOURCE(源码里面)<CLASS(类里面)<RUNTIME(运行时))
@Documented
说明该注解将被包含在javadoc中
@Inherited
说明子类可以继承父类中的该注解
自定义注解
使用@interface自定义注解时,自动继承java.lang.annotation.Annotation接口
分析:
-
@interface用来声明一个注解,格式:public @interface 注解名{定义内容}
-
其中的每个方法实际上是声明一个配置参数
-
方法名称就是参数名称
-
返回值类型就是参数的类型(返回值只能是基本类型、Class、String、enum)
-
可以通过default来声明参数的默认值
-
如果只有一个参数成员,一般参数名为value
-
注解元素必须要有值,我们定义注解元素时,经常使用空字符串,0作为默认值