注解
注解,或者叫做注释,英文单词是:Annotation
-
注解Annotation是一种引用数据类型,编译之后也是生成xxx.class文件
-
怎么自定义注解呢?语法格式?
[修饰符列表]@interface 注解类型名{}
-
注解怎么使用,用在什么地方?
- 第一:注解使用时的语法格式是
- @注解类型名
- 第二:注解可以出现在类上、属性上、方法上、变量上、注解类型上等…
- 第一:注解使用时的语法格式是
-
JDK内置了哪些注解呢
- java.lang包下的注释类型
- Deprecated用@Deprecated注释的程序元素,不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。
- @Deprecated 表示已过时
- 这个注解主要是向其它程序员传递一个消息,告知已过时,有更好的解决方案存在
- Override表示一个方法声明打算重写超类中的另一个方法声明。
- @Override
- 标志性注解,给编译器做参考
- 编译器看到方法上有这个注解的时候,编译器会启动检查该方法是否重写了父类的方法。如果没有重写,报错
- 这个注解只是在编译阶段起作用,和运行期无关、
- SuppressWarnings 指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。
- Deprecated用@Deprecated注释的程序元素,不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。
- java.lang包下的注释类型
-
元注解
- 什么是元注解?
- 用来标注“注解类型”的“注解”,称为元注解。
- 常用的元注解有哪些
- Target
- Target是一个元注解,用来标注“注解类型"的”注解“。
- 这个Target注解用来标注”被标注的注解“可以出现在哪些位置上
- @Target(ElementType.METHOD):表示”被标注的注解“只能出现在方法上
- Retention
- 这是一个元注解,用来标注”注解类型“的”注解“
- 这个Retention注解用来标注”被标注的注解“最终保存在哪里
- @Retention(RetentionPolicy.SOURCE):表示该注解只被保留在java源文件中
- @Retention(RetentionPolicy.CLASS):表示该注解只被保留在class文件中
- @Retention(RetentionPolicy.RUNTIME):表示该注解被保存在class文件中,并且可以被反射机制所读取到
- Target
- 什么是元注解?
-
如果一个注解当中有属性,那么必须给属性赋值(除非该属性使用default指定了默认值)
- eg:
- @MyAnnotation(属性名=属性值)
- 如果一个注解的属性的名字是value的话,在使用的时候,该属性名可以省略
- eg:
-
注解当中的属性可以是哪一种类型?
- 属性的类型可以是:byte,short,int,long,float,double,boolean,char,String,class,枚举类型以及以上每一种的数组形式。
-
注解在开发中的作用
- 需求
- 假设有这样一个注解,叫做:@id
- 这个注解只能出现在类上面,当这个类上有这个注解的时候,要求这个类中把必须有一个int类型 的id属性。如果没有这个属性就报异常。如果有这个属性则正常执行
- 假设有这样一个注解,叫做:@id
- 需求