概述
- 属于引用数据类型
编译之后也是生成 xxx.class文件
语法格式:
修饰符列表 @interface 注解类名{}
使用
- 注解使用的语法格式: @注解类型名
-
JDK内置的注解
@Override
- 出现在方法上,供编译器检查是否为重写的方法
- 并不是必须的
- @Depercated
- 标注这个已经过时了, 有一个删除线
- 向其他程序员告诉已过时,有更好的解决方案
元注解
如果一个注解修饰一个注解类型, 那么他就叫元注解
常见的元注解
- Target
- 一个元注解,用来标注“注解类型”的注解
- 标注:被标注的注解可以出现在哪些位置上
- @Target({ElementType.METHOD}) : 表示被标注的注解只能出现在方法上
- Retention
- 表示该注解最终保存到哪(保持性策略)
- @Retention(RetentionPolicy.SOURCE) 表示该注解最后只会保存在java源文件中
- @Retention(RetentionPolicy.CLASS) 保留在class文件中
- @Retention(RetentionPolicy.RUNTIME) 保留在class文件中 并且可以被反射读取
在注解里面创建一个属性
public @interface MyAnnotation{String name(); //属性 看着很奇怪,但就是这样String color() default="默认"; //设置默认值}
当使用这个注解的时候,需要这样使用(指定属性值)
@MyAnnotation(属性名=属性值,属性名=属性值)public static void doSome(){}
如果属性名是value 是 String/int/… value()
那么在用这个注解的时候 直接 @MyAnnotation(“zhangsan”)
value可以省略(只有一个value属性)
类型
byte short int long float double boolean char String Class 枚举
注解在开发时的作用
- 对程序的一种注释,一种标记
