零基础java自学流程-Java语言进阶184

本文详细介绍了JDK中的元注解,包括@Retention和@Target的使用方法及参数含义。解析了不同RetentionPolicy选项的作用,以及@Target如何指定注解的应用范围。

4.JDK的元Annotation

1.使用@Retention

这个注解是用来修饰注解定义的,作用是被修饰的注解可以保存多久,这个注解需要使用参数。

这个参数的类型是RetentionPolicy,所以使用这个注解就要对value赋值。

value的值有且仅有三个:

->RetenionPolicy.CLASS 编译器把该注解记录在class文件中。当运行java程序时,JVM不可获取注解信息。这是默认值!

->RetenionPolicy.RUNTIME编译器把该注解记录在class文件中。当运行java程序时,JVM可获取注解信息,程序可以通过反射获取该注解信息

->RetenionPolicy.SOURCE 该注解只保存在源代码中,编译器直接丢弃该注解

例如:@Retention(value =RetenionPolicy.SOURCE) 可简写为@Retention(RetenionPolicy.SOURCE)

2.使用@Target

@Target也只能修饰一个注解定义,作用是指定被修饰的注解能用于修饰哪些程序单元,@Target也包含了一个value值,他的值只能是下面的:ElementType.

取值

注解使用范围

METHOD

可用于方法上

TYPE

可用于类或者接口上

ANNOTATION_TYPE

可用于注解类型上(被@interface修饰的类型)

CONSTRUCTOR

可用于构造方法上

FIELD

可用于域上

LOCAL_VARIABLE

可用于局部变量上

PACKAGE

用于记录java文件的package信息

PARAMETER

可用于参数上

例如:

@Target(ElementType.METHOD) (这是简写)

public @interface Action()

上面就是他的用法,不过有个比较容易混淆的地方就是@interface和interface不是同一个东西:

@interface 不是interface,是注解类 是jdk1.5之后加入的,java没有给它新的关键字

,所以就用@interface 这么个东西表示了 这个注解类,就是定义一个可用的注解

,包括这个注解用于什么地方,是类,还是方法,还是property,还是方法入参等等

,还有这个注解是否编译后进入class 比如我们知道的用于javadoc的注解,是不进入class文件的。

然后在后面你就可以用这个注解写代码了。总的来说,这就是一个生成javadoc时用到的注释类


尚学堂给同学们带来全新的Java300集课程啦!java零基础小白自学Java必备优质教程_手把手图解学习Java,让学习成为一种享受_哔哩哔哩_bilibili尚学堂给同学们带来全新的Java300集课程啦本课程为Java300集2022版第一季,配合最新版的Java课程,所有视频重新录制,课件所有图形做了重新绘制和配色,图解学习Java,让学习成为一种享受本套教程专门为零基础学员而制,适合准备入行Java开发的零基础学员,视频中穿插多个实战项目。每一个知识点都讲解的通俗易懂,由浅入深。不仅适用于零基础的初学者,有经验的程序员也可做巩固学习。后续课https://www.bilibili.com/video/BV1qL411u7eE?spm_id_from=333.999.0.0

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值