注解
注解
注解
概念:说明程序的,给计算机看的
注释:用文字描述程序的,给程序员看的
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。
Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码 中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。
概念描述:
jdk1.5之后的新特性
说明程序的
使用注解:@注解名称
1.编写文档:通过代码里标识的注解据生成文档
2.代码分析:通过代码里标识的注解对代码进行分析
3.编译检查 通过代码里的标识的注解让编译器能够实现基本的编译检查
JDK预定义的一些注解
@override:检测被该标注的方法是否是继承父类的
@Deprecate :将该注解标注的内容,表示已过时
@SuppressWarnings:压制警告的
一般传递参数all,@SuppressWarnings("all")
自定义注解
元注解
public @interface 注解名称{
属性列表
}
本质:注解本质上就是一个注解,该接口默认继承Annotation接口
public interface Myanno extends java.lang.annotation.Annotation{}
属性:接口中的抽象方法
要求:
1.属性的返回值类型
基本数据类型
String
枚举
注解
以上类型的数组
2.定义了属性,在使用的时候,给属性赋值
1.使用赋值的时候,使用defalut关键字给属认值初始化值,则使用注解时,可以不进行属性的赋值
2.如果只有一个在程序上使用注解属性需要赋值,并且属性的名称是value,则value可以shenglve,直接定义值即可
3.数组赋值时,值使用{}包裹,如果数组中只有一个值,则{}省略
元注解:用于描述注解的注解
1.@Target:描述注解能够作用的位置
ElementType取值:
TYPE:可以作用于类上
METHOD:可以作用于方法上
FIELD:可以作用于成员变量上
2.@Retention:描述注解被保留的阶段
@Retention(RetentionPolicy.RUNTIME):当前被描述的注解,会保留到class字节码文件中,并被JVM读取到-
3.@Documented:描述注解是否被抽取到api文档中
4.@Inherited:描述注解是否被子类继承
在程序使用(解析)注解:获取注解中定义的属性值
1.获取注解定义位置的对象(Class,Method,Field)
2.获取指定的注解
getAnnotation(class)
/* public class ProImpl implements Pro{ public String className(){ return "cn.itcast.annotation.Demo1"; } public String methodName(){ return "show"; } } */
3.调用注解中的抽象方法获取配置的属性值

浙公网安备 33010602011771号