注解

注解相关的类位于java.lang.annotation包下:
这里写图片描述

1.元注解:

  1. 作用:对其他annotation类型作说明;
  2. 分类:
1. @Target
2. @Retention
3. @Documented
4. @Inherited

@Target:
说明Annotation所修饰的对象范围,官方文档也作了说明:
这里写图片描述
Annotation所修饰的内容由枚举ElementType决定:

typeanno
TYPEClass, interface (including annotation type), or enum declaration(类, 接口, 注解, 枚举)
FIELDField declaration (includes enum constants) (变量,枚举常量)
METHOD方法
PARAMETER方法参数
CONSTRUCTOR构造方法
LOCAL_VARIABLE本地变量
ANNOTATION_TYPEAnnotation
PACKAGE修饰包名
TYPE_PARAMETER方法参数类型
TYPE_USEanno

@Retention:
这里写图片描述

            enum RetentionPolicy
enumanno
SOURCE注解将会被编译器丢地
CLASS注解被编译器记录在class文件中,但是在VM的运行时期无效
RUNTIME注解被记录在class文件中,并且在运行时期有效,所以他们可能通过反射用到

@Documented:
@Inherited:

2.自定义注解:

使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口,由编译程序自动完成其他细节, 在定义注解时, 不能继承其他的注解接口. @interface用来声明一个注解, 其中每一个方法实际上是声明了一个配置参数, 方法的名称就是参数的名称, 返回值类型就是参数的类型.

1.定义注解的格式:
public @interface 注解名  
2.注解参数可支持数据类型:
1. 所有的基本数据类型;
2. String类型;
3. Class类型;
4. enum类型;
5. Annotation类型;
6. 以上所有类型的数组;
3.Annotation类型里面的参数设置:
  1. 只能用public或default这两个访问权修饰
  2. String value()的参数成员为String;
  3. 如果只有一个参数成员, 最好把参数名称设为”value”,后加小括号;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值