【Java】注解与自定义
2022/3/20 14:58:40
本文主要是介绍【Java】注解与自定义,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、注解(Annotation)
1、由来
从JDK5.0开始增加了对元数据(MetaData)的支持,即是注解。注解其实就是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。
2、作用
- 框架=注解+反射+设计模式
- 替代XML中配置,更加简洁,使用注解开发能够提高开发效率
3、常见注解
- 生成文档相关的注解:@author、@version、@see、@since、@param、@return、@exception
- 在编译时进行格式检查(JDK内置):@Override、@Deprecated 、@SuppressWarnings
- 跟踪代码依赖性,实现替代配置文件功能:@WebServlet、@Transactional
二、如何自定义注解
1、说明
- 定义新的注解类型,使用@interface关键字
- 自定义注解自动继承了java.lang.annotation.Annotation接口
- 注解的成员变量以无参方法的形式声明,方法名和返回值定义了该成员的名字和类型,类型只能为八种基本数据类型、string类型、class类型、enum类型、Annotation类型、以及以上类型的数组
- 注解的成员变量名通常使用value表示,使用注解时,若只有一个属性时,可省略属性名不写
- 默认值,使用default关键字
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface Person { String name(); GenderEnum gender() default GenderEnum.UNKNOWN; int age() default 18; String[] hobbies(); }
注意:自定义注解必须配上注解信息的处理流程才有意义!使用反射
2、元注解
元注解,对现有注解进行解释说明的注解。
- @Retention:指定所修饰的注解的声明周期,枚举类RetentionPolicy中定义三种类型,SOURCE(源文件保留)、CLASS(默认,class文件保留)、RUNTIME(运行时)
- @Target:指定注解能用于修饰哪些程序元素,在枚举类ElementType中
- @Documented:该元注解修饰的注解所修饰的元素在提取Java doc文档时,会保留
- @Inherited:被修饰的注解,具有继承性
JDK8新增注解
- 可重复注解: @Repeatable,被修饰的注解可重复使用,JDK8之前使用数组实现
- 类型注解:类型的地方都可以用,ElementType.TYPE_PARAMETER、TYPE_USE
3、注解解析
- 类扫描+反射
这篇关于【Java】注解与自定义的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?