【JAVA SE基础篇】66.注解,反射机制处理注解


1.注解入门

注解(Annotation)由jdk1.5后引入

1.注解作用:

1.不是程序本身,可以对程序作出解释(与注释功能一致)

2.可以被其他程序读取(编译器)。

注释与注解的区别:

注解信息处理流程,是注解的和注释的最大区别。没有注解信息处理流程,注解就没有意义

注解的格式:

注解是以“@注解名”在代码中存在,还可以添加一些参数值,例如:@SuppressWarnings(value=“unchecked”)。

注解在哪里使用:

可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,

我们可以通过反射机制编程实现对这些元数据的访问。

2.内置注解

@Override:定义在java.lang.Override中,此注释只适用于修饰方法,

表示一个方法声明打算重写超类中的另一个方法声明

@Deprecated:定义在java.lang.Deprecated中,此注释可用于修辞方法,属性,类,

表示不鼓励程序员使用这样的元素,通常是因为他很危险或存在更好的选择

@SuppressWarnings:定义在java.lang.SuppressWarnings中,

用来抑制编译时的警告信息

3.自定义注解,元注解

1.元注解作用:

负责注解其他注释。Java中定义了4个标准的meta-annotation类型,他们被用来提供对其他annotation类型做说明

这些类型和他们所支持的类在java.lang.annotation包中可以找到

@Target:用于描述注解的适用范围

package(包):PACKAGE

类,接口,枚举,annotation:TYPE

构造器:CONSTRUCTOR

属性:FIELD

方法:METHOD

局部变量:LOCAL_VARIABLE

参数:PARAMETER

@Retention:表示需要在什么级别保存该注释信息,用于描述注解的生命周期

SOURCE:在源文件中有效(即源文件保留)

CLASS:在class文件中有效(即class保留)

RUNTIME:在运行使有效(即运行时保留),为Runtime可以被反射机制读取

@Documented:

@Inherited

2.自定义注释:

使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口

注:@interface用来声明一个注释,格式为 public @interface 注解名{定义体}

其中每一个方法实际上是声明了一个配置参数

方法明就是参数的名称

返回值类型就是参数类型(返回值类型只能是基本类型、class、String、enum)

可以通过default来声明参数的默认值

如果只有一个参数成员,一般参数名为vaule

3.反射机制处理注解

ORM:类和表互相转化

类和表结构对应

属性和字段对应

对象和机录对应

使用注解完成类和表结构的映射关系


原文链接:https://www.cnblogs.com/chengkuan/p/13410529.html