JAVA注解
注解
基本概述
- Annotation(注解):
- 作用:
- 对程序作出解释(和注释(comment)一样)
- 可以被其他程序读取(编译器等)
- 格式 – @注释名(参数)
- 作用于package/class/method/field等上, 给他们添加了额外的辅助信息,可以通过反射机制对这些元数据进行访问
部分常见注解
@Override: 重写超累的方法
@Deprecated: 定义为废弃的,不推荐使用, 或者有更好的选择
SuppressWarnings:
用来抑制编译时 的警告信息(强迫症福利??) 有参数:
- (“all”)/(“Unchecked”)/(value = {“unchecked”,”deprecation”})
元注解
元注解(Meta-Annotation) 用来注解其他注解, java提供了四个标准元注解
这些类型和支持的类在(java.lang.annotation)包中
- @Target: 描述作用范围
- @Retention: 表示保存注释的级别, 描述注释的生命周期(SOURCE<CLASS<RUNTIME)
- @Document: 说明该注释被包含在javadoc中
- @Inherited: 说明子类可以继承父类的注释
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 // 描述作用域(ElementTYpe)
// TYPE, //接口、类、枚举、注解
// FIELD,//字段、枚举的常量
// METHOD, //方法
// PARAMETER, //方法参数
// CONSTRUCTOR, //构造函数
// LOCAL_VARIABLE, //局部变量
// ANNOTATION_TYPE, //注解
// PACKAGE //包
// 生命周期(RetentionPolicy)
// SOURCE, // 源码
// CLASS, // 类
// RUNTIME // 运行时
// 在javaDoc中
// 子类可继承
MyAnnotation {
}
自定义注解
使用**@interface**来声明自定义注解,public @interface name{内容}
- 自动继承Annotation接口
- 对于参数
- 格式: 类型 名称();
- 内部每一个方法其实是个参数 返回值类型就是参数类型(只能是基本类)
- 可以通过default来默认参数
- 如果只有一个参数成员, 一般命名为Value
- 注解元素必须要有值,通常使用默认为: 空字符串和0
java
1 | / 定义作用域 |
注解开发
元注解灵活使用
通过反射来动态获取注解的参数
java
1 | Class userClass = User.calss; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 大橘のBlog!
评论