网站首页 > java教程 正文
Java中常见的注解
JDK自带注解
1. @Overide:重载方法
2. @Deprecated:标注方法已经过时
3. @SuppressWarnings():抑制警告
注解的分类
按照运行机制
编码注解:注解只在源码中存在,编译后消失
编译时注解:注解在源码和.class文件中都存在(上面三个)
运行时注解:在运行阶段还起作用,甚至还会影响运行逻辑的注解(Spring注解)
按照来源
JDK自带注解
来自第三方的注解自定义注解
元注解
自定义注解
语法要求
1. 成员类型是受限的,合法的类型包括原始类型,String,Class,Annotation,Enumeration
2. 如果注解只有一个成员,则成员建议取名为value(),在使用时可以忽略成员名和赋值号(=)
3. 注解可以没有成员,没有成员的注解称为标识注解(@Override,@Deprecated) 如下:
target:注解作用域:构造方法声明(CONSTRUCTOR)、变量声明(FIELD),局部变量声明(LOCAL_VARIABLE)、方法声明(METHOD)、包声明(PACKAGE)、参数声明
(PARAMETER)、类/接口(TYPE)
Retention:生命周期:SOURCE(只在源码中显示,编译时会丢弃)、CLASS(编译时会记录到class中,运行时忽略)
RUNTIME:运行时存在,可以通过发射获取
Inherited:标识性注解,允许子类它
Documented: 生成javadoc时会包含注解
使用自定义注解
解析注解
概念:通过反射获取类、函数或成员上运行的注解信息,从而实现动态控制程序运行的逻辑。
输出结果:
如果把@Retention(RetentionPolicy.RUNTIME)改为SOURCE,或者ClASS,那么是不会输出以上结果的。
验证注解@Inherited
如果改为:
则结果输出如下:
总结:说明Inherited注解只针对类级别的注解,不支持接口级别的注解,如果子类重写了父类的方法,则子类方法不会继承父类方法的注解。
- 上一篇: 好程序员Java教程分享Java注解和运用注解编程
- 下一篇: 收藏!你一定要知道的Java8中的注解
猜你喜欢
- 2024-09-21 Java基础:注解,改变了编程的体验
- 2024-09-21 人手必备!Java8中的注解,你必须知道的几点
- 2024-09-21 Java 进阶之 注解(java中注解如何实现的)
- 2024-09-21 java注解的使用(java注解的实现原理)
- 2024-09-21 不吹牛,撸个注解有什么难的(不吹牛的道理)
- 2024-09-21 终于弄懂了Spring@Component @Repository@Service的区别
- 2024-09-21 2020年最新Java全套教程注解(2020年最新兵役法)
- 2024-09-21 你知道Spring是如何处理注解的吗?
- 2024-09-21 注解梳理:深入理解Java注解类型(@Annotation)
- 2024-09-21 Java中的注解到底是如何工作的?(注解 java)
你 发表评论:
欢迎- 最近发表
-
- class版本不兼容错误原因分析(class更新)
- 甲骨文Oracle公司为Java的最新LTS版本做出改进
- 「版本发布」Minecraft Java开发版 1.19.4-pre1 发布
- java svn版本管理工具(svn软件版本管理)
- 我的世界1.8.10钻石在第几层(我的世界1.7.2钻石在哪层)
- Java开发高手必备:在电脑上轻松切换多个JDK版本
- 2022 年 Java 开发报告:Java 8 八年不到,开发者都在用什么?
- 开发java项目,选择哪个版本的JDK比较合适?
- Java版本选型终极指南:8 vs 17 vs 21特性对决!大龄程序员踩坑总结
- POI Excel导入(poi excel导入附件)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)