JavaBasic-6-注解
注解
注解作用
对程序进行标注和解释
注解 | 说明 |
---|---|
@Override | 描述子类重写父类方法 |
@Deprecated | 描述方法过时 |
@SuppressWarnings | 压制警告 |
注解与注释的区别
- 注释是给程序员看
- 注解是给编译器看(让虚拟机看到程序中的注解,注解代表程序的一些特殊功能)
自定义注解
1 | public 注解名{ |
元素前的public修饰是默认的可以省略,但是不能使用其他的修饰
default是用来设置默认值的,在使用的时候如果不指定元素的值则默认是设置的这个默认值
元素类型可以使用如下
基本数据类型
String类型
Class类型
注解类型
枚举类型
以上类型的一维数组
元注解
元注解是修饰注解的注解,JDK提供了一些元注解使用
@Target
:用于定义被修饰的注解可以应用于代码中的哪些位置
- 类或接口:
ElementType.TYPE
- 成员变量:
ElementType.FIELD
- 成员方法:
ElementType.METHOD
- 构造方法:
ElementType.CONSTRUCTOR
- 方法参数:
ElementType.PARAMETER
1 |
|
@Retention
:用于定义注解的生命周期
- 仅编译期:
RetentionPolicty.SOURCE
- 仅class文件:
RetentionPolicty.CLASS
- 运行期:
RetentionPolicty.RUNTIME
- 通常我们自定义的注解是在运行期使用的,所以自定义注解时会使用这个元注解修饰自定义注解,并设置为RetentionPolicty.RUNTIME
@Documented
:指定该注解是否会在javadoc体现
@Inherited
:子类会继承父类注解
注解的使用
格式
1 | // 方式1,给指定的元素赋值,没有赋值的将使用默认值 |
判断
判断某个注解是否存在于某个Class
、Field
、Method
、Constructor
- Class.isAnnotationPresent(Class)
- Field.isAnnotationPresent(Class)
- Method.isAnnotationPresent(Class)
- Constructor.isAnnotationPresent(Class)
- 注意:方法的参数是需要判断的注解的Class对象,返回值类型是boolean
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment