Java Annotation
2015-09-30 14:09:57 0 举报
AI智能生成
Java注解(Annotation)
作者其他创作
大纲/内容
概念定义
注解
注解:提供一种为程序元素设置元数据的方法
基本原则:注解不能直接干扰程序代码的运行,无论增加或删除注解,代码都能够正常运行
注解分类
标注注解(marker annotation): 没有元素的注解
单值注解
完整注解
元数据
元数据(metadata)就是关于数据的数据
元数据作用
编写文档:通过代码里表示的元数据生成文档
代码分析:通过代码里表示的元数据对代码进行分析
编译检查:通过代码里表示的元数据让编译器能实现基本的编译检查
系统注解
标准注解
@Override
作用:保证编译时Override函数的声明正确性
@Deprecated
作用:对不应该再使用的方法添加注释,当使用这些方法的时候,将会在编译时显示提示信息
与javadoc里的@deprecated标记有相同的功能,准确的说它还不如javadoc @deprecated, 因为它不支持参数
@SuppressWarnings
作用:关闭特定的警告信息
参数:
deprecation: 使用了过时的类或方法时的警告
unchecked: 执行了未检查的转换时的警告
fallthrough: 当Switch程序块直接通往下一种情况而没有Break时的警告
path: 在类路径,源文件路径等中有不存在的路径时的警告
serial: 当在可序列化的类上缺少serialVersionUID定义时的警告
all: 关于以上所有情况的警告
元注解
作用:负责注解其他注解
@Retention
作用:表示需要再什么级别保存该注解信息
RetentionPolicy参数:
SOURCE:在源文件中有效
CLASS:在class文件中有效,但会被VM丢弃,缺省
RUNTIME:VM将在运行时保留注解,因此可以通过反射机制读取注解的信息
@Target
作用:该注解可以用于什么地方
ElementType参数:
CONSTRUCTOR:构造器的声明
FIELD:域声明(包括enum实例)
LOCAL_VARIABLE:局部变量声明
METHOD:方法声明
PACKAGE:包声明
PARAMETER:参数声明
TYPE:类,接口(包括注解类型)或enum声明
@Documented
作用:将注解包含在javadoc中
@Inhertied
作用:允许子类继承父类中的注解
注解元素数据类型
所有基本类型(int, float, boolean等)
String
Class
enum
Annotation
以上类型的数组
提取注解
java.lang.reflect.AnnotatedElement接口
已知实现类
Class
Constructor
Field
Method
Package
方法
getAnnotation: 返回该程序元素上存在的制定类型的注解。如果该类型的注解不存在, 则返回null
getAnnotations: 返回程序该元素上存在的所有注解
isAnnotationPresent: 判断该程序元素上是否包含制定类型的注解,存在返回true, 否则返回fase
getDeclaredAnnotations: 返回存在于此元素上的所有注解
0 条评论
下一页