JAVA反射(4) - Annotation注解

本文详细介绍了Java注解中的元注解,包括@Target用于指定注解使用范围,如构造器、方法、参数等;@Retention定义注解的保留策略,如源文件、类文件或运行时;@Documented用于将注解纳入公共API文档;@Inherited允许子类继承父类的注解。通过对这些元注解的理解,能更好地掌握Java注解的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0.定义一个注解

    @Target(ElementType.FIELD)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface Column {
            public String name() default "fieldName";
            public String setFuncName() default "setField";
            public boolean defaultDBValue() default false;
     }

1.元注解是什么
a) 作用:就是负责注解其他注解
b) 种类:@Target、 @Retention、@Documented、@Inherited

2.@Target
a) 作用:说明类Annotation所修饰的对象范围
b) 作用范围:packages、types(类、接口、枚举)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。
c) ElementType取值 :
1)constructor 用于描述构造器
2)field 用于描述域
3)local_variable 用于描述局部变量
4)method 用于描述方法
5)package 用于描述包
6)parameter 用于描述参数
7)type 用于描述类、接口(包括注解类型)或 enum声明

 d)java中‘域(field)’是什么?
所谓的域,翻译成英文就是field, 也就是我们常说的字段,或者说是属性。 比如类的字段(属性),局部的,全局的。所谓域,其实是“field”的翻译。
然后实例域,就是 实例("object" )的"field"。包括实例域和静态域,静态域又叫类域。java中对象中的数据称为实例域(instance field)。

3.@Retention
a)定义注解的保留策略,即描述注解生命周期
b) RetentionPolicy取值范围:
1)source 在源文件中有效(即源文件保留)
2)class 在class文件中有效(即class保留)
3)runtime 在运行时有效(即运行时保留)

4.@Documented
作用:标记注解,用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化

5.@Inherited
作用:标记注解,阐述了某个被标注的类型是被继承的
注意:@Inherited annotation类型是被标注过的class的子类所继承。类并不从它所实现的接口继承annotation,方法并不从它所重载的方法继承annotation。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值