Java进阶_注解

[TOC]
注解基础概念
注释:用文字描述程序的,给程序员看的
百度上的解释:
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制,是一种代码级别的说明。Java 语言中的类、方法、变量、参数和包等都可以被标注。
和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。
当然它也支持自定义 Java 标注。
概念描述:
JDK1.5 之后的新特性
用来说明程序的
使用注解:@注解名称
作用分类
编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【Override】
编写文档:通过代码里标识的注解生成文档,API文档是通过抽取代码中的文档注释生成的。
代码分析:通过代码里标识的注解对代码进行分析【使用反射】
大多数时候,我们会使用注解而不是自定义注解
注解给编译器和解析程序用
注解不是程序的一部分,可以理解为标签
预定义注解
@Override:检测被该注解标注的方法是否搜集继承自父类(接口)的,定义在java.lang.Override中,此注释只适用于修辞方法,表示一个方法声明打算重写超类中的另一个方法声明
@Deprecated:将该注解标注的内容,表示已过时,定义在java.lang.Deprecated中,此注释可以用于修辞方法,属性,类,表示不鼓励程序员使用这样的元素,通常是因为它很危险或者存在更好的选择
@SuppressWarnings:压制警告,一般传递参数all,定义在java.lang.SuppressWarnings中,用来抑制编译时的警告信息。与前两个注释有所不同,你需要添加一个参数才能正确使用,这些参数都是已经定义好了的,我们选择性的使用就好了如@SuppressWarnings("all")、@SuppressWarnings("all")、@SuppressWarnings("unchecked")、@SuppressWarnings(value={"unchecked","deprecation"})
自定义注解
基本格式
注解的本质: 注解本质上就是一个接口,该接口默认继承java.lang.annotation.Annotation接口
元注解
概念:用于描述注解的注解。
元注解的作用就是负责注解其他注解,Java定义了4个标准的meta-annotation类型,他们被用来提供对其他annotation类型作说明。这些类型和它们所支持的类在java.lang.annotation包中可以找到。
@Target:描述能够作用的位置(即:被描述的注解可以用在什么地方)其中value中ElementType取值可以有以下几种情况:
TYPE:可以作用在类上
METHOD:可以作用在方法上
FIELD:可以作用于成员变量上
@Retention:描述注解被保留的阶段,用于描述注解的生命周期@Retention(RetentionPolicy.RUNTIME):当前被描述的注解,会保留到字节码文件中,并被JVM读取到,一般自己定义的注解都加RUNTIME
@Documented:描述该注解是否会被抽取到api文档中
@Inherited:描述注解是否被子类继承
使用注解
注解在程序中经常和
反射一起使用,注解大多数来说都是用来替换配置文件的
在程序中使用注解:获取注解中定义的属性值
获取注解定义的位置的对象 (Class, Method, Field)
获取指定的注解:getAnnotation(Class)
调用注解中的抽象方法获取配置的属性值
案例分析
测试框架
需求:设计一个框架,检测一个类中的方法使用有异常,并进行统计。
编写一个类专门用于检查(注意注释):
运行TestCheck类中的主方法,就会自动检查所有注解@Check的方法是否异常:
ORM实例
Last updated
Was this helpful?




