76 注解(一)——常用注解、自定义注解、注解的参数
注解
注解与注释都是用来说明程序的代码的作用。但与注释不同的时,注解可以被其他程序辨识,作为可操作的数据处理。
注解可以用在类、方法、包、作用域等。
一些常见的注解
@Override 在一个方法上面若写了@Override则说明这个方法是重写父类的方法,若此方方法在父类中不存在,则会报错。
@Deprecated 不赞成 这个注解将使得用户在使用被其注解的方法时,会看到该方法被画上删除线如:sleep()
@SuppressWarnning 压制警告。方法中常常会报黄色的警告,如不想出现这些警告,可以使用@SupressWarnning(参数)来取消这些警告。参数有如下几种:
自定义注解
新建注解:右键->new->Annotation,然后给新建的annotation起个名就好。
元注解
元注解是java提供的用来给注解做注解的注解。
- @Target
- @Retention
- @Document
- @Inherited
@Target
用于描述注解的使用范围
示例:
@Target(value=ElementType.TYPE)//别忘记写ElementType public @interface MyAnnotation {//自定义的Annotation }
其中:FIELD通常表示类中的变量。
@Retention
译作:维持,保留。这个注解是用来声明注解的生命周期
它的参数有:
示例:@Retention(RetentionPolicy.SOURCE)
注解的参数
在注解中可以定义参数,参数类型可以是基础数据类型和String类型,以及基础数据类型和String类型的数组类型,参数名要跟上一对小括号(),在使用有参数的注解时,必须传入参数。
//自定义注解
public @interface TargetValueConStructor {
int age();
int num();
String[] words();
}
//调用时
@TargetValueConStructor( age= 18,num=19,words= {"nihao","yes"})
参数的默认值
如SuppressWarnning()就必须传一个参数,参数类型也是固定的一些值。-1表示不存在。当参数存在默认值时,使用该注解可以无需写参数。
我们常用空字符串"",0和-1作为默认的参数值,
public @interface MyRetentionAnnotation { int age() default 0; }