注解Annotation的作用
不是程序本身,可以对程序作出解释。(这一点,根注解没区别)
可以被其他程序(比如编译器)读取。
格式:
注解是以“@注解名”在代码中存在的,还可以添加一些参数值,
使用场景:
可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编制程序实现对元数据的访问。
常见注解:
@Override
定义在java.lang.Override中,此注解只适合用于修饰方法,表示一个方法声明打算重写超类中的另外一个方法声明。
@Deprecated
定义在java.lang.Deprecated中,此注解可用于修饰方法、属性、类,表示不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。
@SuppressWarnings中,用来抑制编译时的警告信息
自定义注解
元注解
元注解的作用负责注解其他注解。
@Target
value为参数名,elementType为参数类型
@Retention
级别是从上往下的覆盖范围(只有RUNTIME才能被反射读取到)
@Documented
在自定义注解的时候可以使用@Documented来进行标注,如果使用@Documented标注了,在生成javadoc的时候就会把@Documented注解给显示出来。
@Inherited
创建注解SxtAnnotation01
添加@Target:只能使用在方法前面
创建Demo类
添加注解@Retention
注解中添加变量
反射机制读取注解
创建SxtStudent类
创建注解以用来对应相关表
在类上添加注解
创建注解用来对于表的属性
我们发现注解现在为止只是一个和注释没两样的东西, 现在只有通过反射才能将相关信息进行对比。在官方提供的注解中,反射基本上都已经在底层实现了。
通过反射获取类中所有的注解
或者直接通过注解类型来获取相关注解
获取属性注解上的值