java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例

注解Annotation的作用

不是程序本身,可以对程序作出解释。(这一点,根注解没区别)

可以被其他程序(比如编译器)读取。

格式:

注解是以“@注解名”在代码中存在的,还可以添加一些参数值,

使用场景:

可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编制程序实现对元数据的访问。

常见注解:

@Override

定义在java.lang.Override中,此注解只适合用于修饰方法,表示一个方法声明打算重写超类中的另外一个方法声明。

@Deprecated

定义在java.lang.Deprecated中,此注解可用于修饰方法、属性、类,表示不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。

@SuppressWarnings中,用来抑制编译时的警告信息

 

自定义注解

 元注解

元注解的作用负责注解其他注解。

@Target

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第1张图片

value为参数名,elementType为参数类型 

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第2张图片

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第3张图片

@Retention

级别是从上往下的覆盖范围(只有RUNTIME才能被反射读取到)

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第4张图片

@Documented

在自定义注解的时候可以使用@Documented来进行标注,如果使用@Documented标注了,在生成javadoc的时候就会把@Documented注解给显示出来。

@Inherited

 

 

创建注解SxtAnnotation01

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第5张图片

添加@Target:只能使用在方法前面

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第6张图片

创建Demo类

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第7张图片

 添加注解@Retention

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第8张图片

注解中添加变量 

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第9张图片

 

反射机制读取注解

 创建SxtStudent类

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第10张图片

创建注解以用来对应相关表

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第11张图片

在类上添加注解

 java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第12张图片

 创建注解用来对于表的属性

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第13张图片

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第14张图片

我们发现注解现在为止只是一个和注释没两样的东西, 现在只有通过反射才能将相关信息进行对比。在官方提供的注解中,反射基本上都已经在底层实现了。

通过反射获取类中所有的注解

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第15张图片

或者直接通过注解类型来获取相关注解

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第16张图片

获取属性注解上的值

java基础的入坑之路--1.注解介绍及注解和反射一起使用的简单实例_第17张图片

 

你可能感兴趣的:(注解介绍及注解,注解和反射一起使用的简单实例)