首页 > 其他分享 >自定义注解(Annotation)

自定义注解(Annotation)

时间:2024-08-08 10:50:55浏览次数:11  
标签:自定义 class annotation Inherited 类型 注解 Annotation

一、概念

Annotation(注解)是 Java 提供的一种对元程序中元素关联信息和元数据(metadata)的途径和方法。
Annatation(注解)是一个接口,程序可以通过反射来获取指定程序中元素的 Annotation对象,然后通过该Annotation 对象来获取注解中的元数据信息。

二、 4 种标准元注解

元注解的作用是负责注解其他注解。 Java5.0 定义了 4 个标准的 meta-annotation 类型,它们被用来提供对其它 annotation 类型作说明。

1、@Target 修饰的对象范围

@Target说明了Annotation所修饰的对象范围: Annotation可被用于 packages、types(类、接口、枚举、Annotation 类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch 参数)。在 Annotation 类型的声明中使用了 target 可更加明晰其修饰的目标

2、@Retention 定义被保留的时间长短

Retention 定义了该 annotation 被保留的时间长短:表示需要在什么级别保存注解信息,用于描述注解的生命周期(即:被描述的注解在什么范围内有效),取值(RetentionPoicy)由:
SOURCE:在源文件中有效(即源文件保留)
CLASS:在 class 文件中有效(即 class 保留)
RUNTIME:在运行时有效(即运行时保留)

3、@Documented 描述-javadoc

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

4、@Inherited 阐述了某个被标注的类型是被继承的

@Inherited 元注解是一个标记注解,@Inherited 阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited 修饰的 annotation 类型被用于一个 class,则这个 annotation 将被用于该class 的子类。

注解的定义案例

注解的调用案例

@自定义注解的包名(方法名)


标签:自定义,class,annotation,Inherited,类型,注解,Annotation
From: https://www.cnblogs.com/fengmian13wl/p/18348492

相关文章

  • 19.python之自定义函数
    python之自定义函数一、函数的介绍1、函数定义:函数是一个组织好,可重复使用,实现单一或联合的代码段。2、函数作用:a、降低代码的冗余、b、增加代码的复用性c、提高程序的拓展性d、封装二、python的结构三、函数的使用1、格式:def函数名(变量):执行语句函数名(实际参数)#调......
  • DockerCompose中使用自定义网络的方式实现部署SpringBoot+Mysql+Redis
    场景Docker中Docker网络-理解Docker0与自定义网络的使用示例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/140788458Docker中使用自定义网络方式实现Redis集群部署与测试流程:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/140797109上面介绍了D......
  • ASP.NET Core 鉴权授权四(自定义Session)
    实体模型publicclassBaseModel{publicintId{get;set;}}publicclassAuthorization:BaseModel{publicstringRoute{get;set;}publicstringAuthorizationName{get;set;}}publicclassUser:BaseModel{publicstringUserName{......
  • Java 自定义注解笔记总结(油管)
    Java系列文章目录Java抽象相关知识笔记文章目录Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1自定义注解引入4.2自定义注解使用4.2.1自定义注解概念4.2.2自定义注解内部的属性五、总结:5.1学习总结:一、前言目的:学习自定义注解相关内......
  • 保存/加载自定义 tf.keras.Model 时出现问题
    我正在构建一个作为自定义tf.keras.Model实现的自动编码器。虽然训练后的模型表现良好,但我无法正确保存并重新加载它。我已经尝试过model.save()方法和save_weights()但在这两种情况下,模型完全无法执行其任务。此自动编码器正在调用另外两个tf.keras.Model,即编码器和......
  • 通过go自定义alertmanager 发送通知的webhook
    本文主要是大体介绍webhook的代码以及涉及到的服务部署,详细配置需要自己弄Prometheus、alertmanager部署先创建alertmanager、Prometheus的docker-composeyaml文件,下面只是把服务运行起来,具体功能需要自己配置,如果有就跳过version:'3'services:prometheus:ima......
  • 笔记:从Aurora 8b/10b 到Aurora 64b/66b (三):自定义PHY层收发
    相较于8/10来说没那么复杂,需要考虑的情况只有八种;但是gearbox的控制需要额外的心思:每三十二周期所有操作都需要停止;这一点在收发都需要注意;RX:核心思想是利用header做检测,将夹杂在数据流中的控制包滤除掉;modulegt_phy_rx(inputwirei_rx_clk......
  • golang sliver二次开发自定义命令(格式乱后面再调)
    准备工作sliver客户端和服务端之间命令的通信采用的grpc,服务端和和植入程序通信使用的protobuf,所以在开发之前需要了解grpc和protobuf,相关文档:https://jergoo.gitbooks.io/go-grpc-practice-guide/content/chapter2/hello-grpc.htmlhttps://jergoo.gitbooks.io/go-grpc-pra......
  • Cython将Numpy数组转为自定义结构体
    技术背景前面我们写过几篇关于Cython的文章,例如Cython计算谐振势、Cython与C语言的结合、Cython调用CUDAKernel函数。Cython有着非常Pythonic的编程范式,又具备着接近于C语言的性能,因此在很多对于性能有要求的Python软件中都会使用到Cython的性能优化。Cython的基本工作流程是,先......
  • 【项目实战】在 MyBatis Plus 中添加 `@TableLogic` 注解,以实现逻辑删除
    一,需求描述在MyBatisPlus中实现逻辑删除是一种常见的需求逻辑删除,通常用于避免直接从数据库中物理删除数据,而是标记这些数据为“已删除”。逻辑删除,可以通过在表中添加一个额外的字段(如deleted或is_deleted)来实现。逻辑删除,当该字段为某个值时(例如1或者true),表示这......