java学习日记20230327-注解
注解
- 注解(Annotation)也被称为元数据(Metadata),用于修饰解释包,类,属性,构造器,局部变量等数据信息;
- 和注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息
- 在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在javaee中注解占据了更重要的角色,例如来配置应用程序的任何切面,代替javaee旧版中所遗留的繁冗代码和xml配置等
- 基本介绍
- 使用Annotation时要在前面加@符号,并把该Annotation当成一个修饰符使用,用于修饰它支持的程序元素
- 三个基本的Annotation:
- Override:限定某个方法,是重写父类方法,该注解只能用于方法:编译器检查该方法是否真的重写了父类的方法,如果没有构成重写,则编译报错
- Deprecated: 用于表示某个程序元素已过时:方法,类,包,属性,构造器,局部变量,参数,可以做版本升级过度使用
- SuppressWarnings:抑制编译器警告,传入数组
- @interface不是接口,表示一个注解类
- @Target是修饰注解的注解,元注解public @interface Override {}
- jdk的元注解
- 用于修饰其他注解
- Retention 指定注解的作用范围,source class runtime
- 只能修饰一个Annotation定义,用于指定该Annotation可以保留多长时间
- @Rentention包含一个RetentionPolicy类型的成员变量,使用时必须为该value指定值
- RetentionPolicy.SOURCE 编译器使用后,丢弃
- RetentionPolicy.CLASS 编译器将把注释记录在class文件中,jvm不会保留,这是默认值
- RetentionPolicy.RUNTIME 编译器将把注释记录在class文件中,当运行java程序时,jvm会保留注释,程序可以通过反射获取该注释
- target指定注解可以在那些地方使用
- 用于修饰Annotation定义,用于指定被修饰的Annotation能用于修饰哪些程序元素,@Target也包含一个为名value的成员变量
- documented指定该注解是否会在javadoc体现
- @Documented用于指定被该元Annotation修饰的Annotation类将被javadoc工具提取文档,即在生成文档时,可以看到该注释
- 定义为Documented的注解必须设置Retention值为RUNTIME
- inherited子类会继承父类的注解
- 被它修饰的Annotation将具有继承性,被修饰的类其子类自动具有该注解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY