注解
1.Annotation的作用:
①它不是程序,它可以注释程序
②可以被其他程序读取
2.格式
@注释名
3.用途
可以使用在package,class,method,field等上面,相当于给它们添加了额外的辅助信息,可以通过反射机制编程实现对这些元数据的访问;
4.相关注解
元注解:
@Target
用于描述注解的使用范围
可以用:
package:PACKAGE
类,接口,枚举,Annotation类型:TYPE
类型成员(方法,构造方法,成员变量,枚举值):CONSTRUCTOR用于构造器,FIELD用于描述属性;METHOD用于描述方法;
方法参数和本地变量:LOCAL_VARIABLE,描述局部变量;PARAMETER,用于描述参数;
如:@Target(value=ElementType.METHOD)
@Retention
描述注解的生命周期
为Runtime表示可以被反射读取
如:@Retention(RetentionPolicy.RUNTIME)
@Target(value=ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
//如果没有默认值,使用的时候需要指定值
String name() default "小王";
int age() ;
}
通过反射获取注解信息
其实就是:
通过注解获取到属性或者方法,再通过方法或者属性获取到相应的注解信息