Java @Deprecated Annotation(注解)
在本部分的快速指南中,我们将会查看 Java 的 deprecated API 和如何在程序中使用 @Deprecated 注解。
@Deprecated Annotation(注解)
作为程序的进化和迭代,随着时间的推移,在项目中总会有些类,构造方法,字段,类型或者方法不建议人们继续继续使用。
为了避免程序向后兼容的问题,而导致程序或者 API 不能使用,我们将会对不再使用的元素使用 @Deprecate 注解来声明。
@Deprecated 主要目的是告诉其他的开发者标记的元素不要在程序中继续使用了。
同时我们还建议在 @Deprecated 注解后面添加一些说明的文本来解释如果希望程序或者 API 具有相同的功能应该使用何种其他的方法。
SRC
package com.ossez.annotations; public class ClassWithDeprecatedMethod { /** * Calculate period between versions * * @deprecated * * This method is no longer acceptable to compute time between versions. * * <p> Use {@link ClassWithDeprecatedMethod#updatedMethod()} instead. */ @Deprecated public static void deprecatedMethod() { } /** * Updated Method instead of deprecatedMethod. */ public static void updatedMethod() { } }
请注意,如果一个 Java 的元素被声明了,但是又在程序或者项目的其他地方被引用的话,编译器将会显示丢弃(deprecated)API 的警告。
在上面的示例代码中,如果 deprecatedMethod 被调用了,只有调用 deprecatedMethod 这个方法显示丢弃的警告。
同时请注意,通过使用 Javadoc @deprecate 标记,我们将会在 Java 文档中也被标记丢弃。
上面的代码,如果在 IDE 中查看文本,将会显示为如下:
Java 9 添加的可选属性
针对 Java 9 的 @Deprecated 注解,还添加了 since 和 forRemoval 属性。
since – 接受字符串的输入参数,用于定义我们丢弃的内容从哪个版本开始。默认为空字符串。
forRemoval – 使用布尔(boolean)类型,用于标记我们丢弃的内容是不是从下一个发行的版本就会被删除。默认为 false。
如下面的代码中对上面属性的定义。需要注意的是,这个功能最低的版本为 Java 9,如果你还在使用 Java 8 的话,是不能被支持的,将会出现编译错误。
/** * Calculate period between versions * * @deprecated * * This method is no longer acceptable to compute time between versions. * * <p> Use {@link ClassWithDeprecatedMethod#updatedMethod()} instead. */ @Deprecated(since = "4.5", forRemoval = true) public static void deprecatedMethod() { }
上面的内容表示的是 deprecatedMethod 方法是从版本 4.5 开始准备丢弃的,同时已经计划在下一个主要的发行版本中完全丢弃删除。
通过添加上面的内容,如果我们现在还在尝试使用这个方法的话,将会通知编译器给我们一个非常强烈的警告。
同时,当前的主流 IDE 工具也能够明显的显示上面强提示。例如在 IntelliJ 中,删除线将会使用一个红色的删除线来替代当前使用的黑色删除线。
结论
在这个快速文章中,我们看到了如何使用 @Deprecated 声明来标记不再使用的元素,以及针对 Java 9 我们可以为其设置一些其他的属性以及这些属性的默认值。
完整的代码,请参考 GitHub 中的项目,可能项目中的源代码和文章中使用的代码有所不同,请以 GitHub 中的代码为主。
代码和内容的完整链接为:https://www.cwiki.us/display/JAVAZH/Java+@Deprecated+Annotation
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
02月27日云栖号头条:救命药来了!3亿慢性病患者今天起可在天猫买处方药
云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 今日最新云头条快讯: 阿里健康和天猫联合宣布启动“放心购药”计划:全国慢性病患者可以在天猫上购买处方药,在北上广深杭等十座城市的病患最快30分钟就可以收到药;为帮助受影响的房产企业和中介机构恢复生产经营,阿里巴巴集团客户体验事业群宣布开通“云卖房热线”,还将提供线上VR看房、直播看房等技术支持。 一起来看最新的资讯: 救命药来了!3亿慢性病患者今天起可在天猫买处方药 阿里健康和天猫联合宣布启动“放心购药”计划:全国慢性病患者可以在天猫上购买处方药,在北上广深杭等十座城市的病患最快30分钟就可以收到药。天猫上互联网医院医生从早上8点30分到夜间24点为慢病患者提供线上问诊服务,用户只需打开手机淘宝App,搜索所需要的药品名称,加入需求清单,经过「互联网医院医生复诊开方」、「线上药师审核处方」2个步骤之后,商家将送药上门。目前已联动超过50家国内外制药企业,保障药品供给和药价稳定,同时合作菜鸟、顺丰、九州通在内的等物流行业伙伴,共同开辟药...
- 下一篇
默克尔树开源实现项目【10+】
Merkle树是一种可以有效验证部分数据存在于指定数据集并且未被篡改的高效的哈希树结构,作为一种底层技术广泛应用在各种区块链的实现当中,对于商品溯源、知识产权确认、区块链公证等区块链应用起着重要的作用。本文介绍11个主流的merkle树开源实现,你可以在自己的项目中应用。 区块链开发教程链接:以太坊 | 比特币 | EOS | Tendermint | Hyperledger Fabric | Omni/USDT | Ripple 1、ethereumjs/merkle-patricia-tree - 以太坊官方merkle树实现 merkle-patricia-tree是以太坊黄皮书中的改进merkle patricia树的实现。目前仅支持leveldb作为存储后端。 开发语言:TypeScript/JavaScript 源码下载:https://github.com/ethereumjs/merkle-patricia-tree 2、google/Trillian - 大规模可验证数据存储 Trillian是google提供的一个透明的、高度可伸缩的密码学可验证数据存储库,它采用M...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境