注解其实就是给java程序的一个注释,一个标记。
1、注解又叫做注释类型,英文单词是: Annotation。
2、注解Annotation是一种引用数据类型,编译之后也是生成xxx.class文件(字节码文件)。
3、自定义注解/语法格式:、
[修饰符列表] @interface 注解类型名{
}
4、注解怎么使用,用在什么地方?
第一: 注解使用时的语法格式是:
@注解类型名
第二: 注解可以出现在类上、属性上、方法上、变量上等...,注解还可以出现在注解类型上。
关于java.lang包下的Override注解: (标识性注解)
1、这个注解只能注解方法。
2、这个注解是给编译器参考的,和运行阶段没有关系。
3、凡是java中的方法带有这个注解的,编译器都会进行编译检查,
如果这个注解不是重写父类的方去,编译器报错。
关于java.lang包下的Deprecated注解:
Deprecated这个注解标注的元素已过时。
这个注解主要是向其它程序员传达一个信息,告知已过时有更好的解决方案存在。
元注解:
1、定义: 用来标注“注解类型”的注解称为元注解。
2、常见的元注解: Target 、Retention
3、关于Target注解:
@Target (ElementType.METHOD) 被标注的注解只能出现在方法上,像Override注解。
Target元注解表示被标注的注解可以出现在哪些位置上。
Target注解底层属性是一个枚举数组(只有一个),属性名是value可以省略。
4、关于Retention注解:
Retention元注解表示被标注的注解最终被保存在哪里。
@Retention(Retentionpolicy. SOURCE) : 表示该注解只被保留在java源文件中。
@Retention(Retentionpolicy.CLASS) : 表示该注解被保存在class文件中。
@Retention( Retentionpolicy.RUNTIME) : 表示该注解被保存在class文件中并可以被反射机制读取。
Retention元注解底层属性是一个枚举(只有一个),属性名是value可以省略。
注解中定义属性:
定义:
类型 属性名();
如果一个注解中有属性,那么使用时必须给属性赋值,除非该属性使用default指定了默认值。
@注解名(属性=属性值)
如果一个注解的属性名是value并且只有一个的时候,在使用该注解时,属性名可以省略。
注解中属性可以是哪些类型:
8种基本数据类型、Class和枚举、String以及它们类型对应的数组。
如果属性是数组,使用注解的时候给这个属性赋值时要加大括号,
但如果数组中只有一个元素的时候大括号可以略省。