avatar

Catalog
JAVA注解

Annotation是从JDK5.0开始引入的新技术,不是程序本身,可以对程序作出解释。

三个内置注解:

@Override (重写):代表一个重新的方法

@Deprecated (过时的):代表一个程序元素是不被推荐使用的,但是可以使用,在最新版本中已经被淘汰

@SuppressWarnings() (镇压警告):可以有参数,代表镇压的等级

四个元注解:

元注解是负责解释其他注解的注解,在定义注解时使用

@Target (位置):可以传一个ElementType的参数,代表注解可以作用的程序元素类型

@Retention(时间):表示注解在什么时间段(程序生命周期)有效,value可取三个值 runtime,class,sources

@Documented(文档):表示我们的注解将被包含在JAVA文档中

@Inherited(继承):表示子类可以继承父类的注解

自定义注解

1、定义注解用 @interface,所有的注解会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是接口。

2、参数成员只能用public或默认(default)这两个访问权修饰

3、参数成员只能用基本类型byte,short,char,int,long,float,double,boolean八种基本数据类型和String、Enum、Class、annotations等数据类型,以及这一些类型的数组。

4、注解的参数格式为 参数类型+参数名()+值

5、当定义的注解只有一个参数时,可以将参数名设置为value,这样在调用注解时,可以简略传参。

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

7、注解也可以没有定义成员, 不过这样注解就没啥用了,只起到标识作用

QQ截图20200331103153

读取注解

要获取类、方法和字段的注解信息,必须通过Java的反射技术来获取 Annotation对象,除此之外没有别的获取注解对象的方法。

例如:

java
1
method.getAnnotation(MyMethodAnnotation.class)

获取注解后就可以对注解进行解析,从而进行一些小小的检查或者控制功能。

参考文献

https://www.cnblogs.com/a591378955/p/8350499.html

Author: realLiuSir
Link: http://yoursite.com/2020/03/31/JAVA%E6%B3%A8%E8%A7%A3/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
    微信
  • 支付寶
    支付寶