注解--java进阶day19

1.注解

2.自定义注解

自定义注解的格式

如图,show1 2 3均为注解的属性,与方法非常相似,但不是方法!

注解的赋值并不是通过=赋值,而是使用default关键字赋值

自定义注解的格式

自定义注解可以选择很多属性类型,而且还能定义常量

3.自定义注解的常用位置

自定义注解可以用在类、方法、变量的上方

注意:

之前的自定义注解都赋了默认值,所以可以直接使用

如果没有默认值,那么就需要在使用注解时加上默认值

没有给默认值的注解就会报错

4.特殊属性--value

我们再创建一个注解,并且只有一个属性名为value的属性

在类中使用该注解时,赋值的时候就不再需要写属性名和=,直接赋值即可

5.注解的作用

先编写一个注解,只作为标识,不需要内容

然后在类的方法上加上注解

接着,获取类的字节码对象,再通过字节码对象获取所有的方法,遍历每一个方法,再使用isAnnotationPresent判断方法上是否带有注解(得是字节码),最后获取类的构造方法,创建对象,并执行方法

但是这样写并不能成功执行,因为注解最多存活在字节码阶段,而反射是在运行阶段

6.元注解

[1]@Target

用于指定注解能放在哪里使用

以重写为例子,Override只能在方法中使用

[2]@Retention

指定注解能存活在什么阶段

所以,要解决上面的问题,我们只需要指定注解存活在运行阶段即可

此时右键运行,加了注解的方法则顺利执行,而剩下的方法则未执行

所以,注解大多数都是结合反射使用才有意义

posted @ 2025-06-01 19:40  直実  阅读(10)  评论(0)    收藏  举报