Annotation注解

注解(标签)

注解的概述

解决xml臃肿的问题

在Java5之后,开始对元数据的支持,就是Annotation(注解)

可以用来描述其他数据的一种数据,可以赋予其他数据一些功能

常用注解:

@Override                限定覆写父类方法
@Deprecated              标记已过时,不推荐使用.在JDK1.5之前,使用文档注释来标记过时
@SuppressWarings         抑制编译器发出的警告,@SuppressWarings(value="all")
@SafeVarargs             抑制堆污染警告(Java7开始出现的)          
@Functionallnterface     标记该接口是一个函数接口(Java8开始出现的)

注解的定义:

1
2
3
public @interface Test{
//抽象方法 属性
}

注解的使用语法:

@注解名(属性名1=属性值1,属性名2=属性值2,...)

注解想要具有某一些功能,最重要的是需要三方程序的参与,必须使用反射来给注解赋予功能

元注解

注解是用来约束其他程序元素的(字段,方法,),元注解是用来约束注解的

@Target:      表示注解可以贴在哪些位置(类,方法上,构造器上等等)
@Retention:   表示注解可以保存在哪一个时期,存活时间
@Documented:  使用@Documented标注的标签会保存到API文档中
@Inherited:   @Inherited标注的标签可以被子类所继承.

自定义注解

语法格式

1. 可以为属性设置默认值, 使用default.
2. 如果必须要写的属性(可以有多个,其他的都有默认值),并且这个属性的名字叫value, 可以省略属性名,直接写值.
3. 属性的类型只能是基本类型,String,Class,注解,枚举,以及其数组类型.
4. 抽象方法不能有参数

使用注解是一种硬编码方式**