如何正确地使用Java的@deprecated标注

没有什么事情比看到一个没有任何说明的@deprecated标注更让人愤怒的事情了。这种做法只能让人困惑,我到底还要不要用这个已经‘废弃’的方法?如果开发者不希望某个方法再被人用的话,就要好好地为@deprecated标注写说明。这篇文章就讨论了正确地使用@deprecated 标注需要遵守的一些规则。

什么是使用@Deprecated标注的规则?

Rule #1: do Javadoc how not to

每当你弃用某方法时,创建JavaDoc告诉其他程序员如何不再使用这个方法。不要只说“这个方法废弃了,不要用它”。因为这就是废弃标注和JavaDoc中@deprecated的字面意义,完全没有必要再重复一遍。Java开发人员作为目标受众,都知道deprecation的意思。

命名新的方法,取代旧有的。(使用@link标注!)这可能还不够,新的方法对应的文档将解释如何使用它。不要在JavaDoc中重复(其字面意义),文档也应遵从DRY原则。另一方面你可能想要描述怎样替换掉旧方法的调用,你可以就重构的细节给出提示。

Rule #2: do not Javadoc how to

移除过时的JavaDoc文档。有些人可能争辩:维护遗留代码的用户可能还会需要这些文档。事实上,他们使用的是旧版本库中的旧版本方法。旧版本的文档仍旧存在那里,像被刻在石头上(更确切的说是刻在资源仓库的某个版本上)。含有被废弃掉的方法的实际版本不应包含过时的描述文档,那会鼓励程序员去继续使用。对于废弃的方法,只有一种用法:不去用。JavaDoc应该被实时描述,如同rule#1所述。

Rule #3: 不要在JavaDoc中解释

不要在JavaDoc中解释为什么方法被废弃了。你是一个可靠的的开发,这是你的决定,你的选择,其他人只能忍着。如果愿意,可以写一篇博客记录这次调整的决策背景。这可能有帮助,但它不应被写在JavaDoc中。

JavaDoc的Deprecated API专用来讲解如何不再使用。 重点是如何(how)。而不是“为什么不再使用它(why)”。

Rule #4: do deprecate

如果你觉得需要弃用一方法,那就去做吧!如果你害怕你的用户,或不想因你废弃掉一些方法导致你用户体验更加痛苦,这个决定将让你自己痛苦。尽你所能去让API维持长久的稳定。但如果有需要被废弃的:立刻扔掉它。不要因“为何当初设计API时没有考虑到未来的变动”而感到愧疚。没有人能完美的预见未来。毕竟,如果你知道未来,生活就无趣了。

原文链接: javacodegeeks
翻译: ImportNew.com - dust_jead
译文链接: http://www.importnew.com/10113.html

转载于:https://www.cnblogs.com/yuyu666/p/9842810.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现div里的img图片水平垂直居中

body结构 <body><div><img src"1.jpg" alt"haha"></div> </body>方法一&#xff1a; 将display设置成table-cell&#xff0c;然后水平居中设置text-align为center&#xff0c;垂直居中设置vertical-align为middle。 <…

[ 懒人神器 ] —— OO一键build:.zip - .jar

懒人神器 更新 大家注意一下&#xff0c;由于在写入MANIFEST的时候&#xff0c;Class-Path路径给的是 ../lib &#xff0c;即上级目录的lib。 所以在对拍时如果手动移动了 jar包的位置&#xff0c;需要保证 lib/ 文件夹在存放jar包的上一级目录下&#xff0c;否则在运行时会报错…

实现Datagrid分页

Html页面&#xff1a; <!DOCTYPE html> <html> <head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title></title><meta charset"utf-8" /><!-- 引入相关CSS --><…

Luogu 3698 [CQOI2017]小Q的棋盘

BZOJ 4813 虽然数据范围很迷人&#xff0c;但是想树形$dp$没有前途。 先发现一个事情&#xff0c;就是我们可以先选择一条链&#xff0c;最后要走到这一条链上不回来&#xff0c;走到链上的点每一个只需要一步&#xff0c;而如果要走这条链之外的点&#xff0c;一个点需要走两步…

h5-plus.webview

这里是链接转载于:https://www.cnblogs.com/yuners/p/10721163.html

解决vue打包后静态资源路径错误的问题

vue项目完成的最后一步就是打包部署上线&#xff0c;但是打包部署的过程往往不是那么一帆风顺的&#xff0c;现将遇到问题和解决方案记录如下。 图片路径问题 起因&#xff1a; 页面中引入资源的方式往往有如下几种 * HTML标签中直接引入图片&#xff0c; 如 <img src&qu…

SQL语句01

SQL(Structured Query Language)&#xff1a;结构化查询语言SQL分类&#xff1a; 数据操纵语言DML&#xff08;Data Manipulation Language&#xff09; SELECT INSERT UPDATE DELETE 数据定义语言DDL&#xff08;Data definition language&#xff09; …

mongoose 笔记

快速启动 首先需要安装MongoDB和Node.js。 然后使用npm下载mongoose&#xff1a; npm install mongoose 接着我们直接在项目中引入mongoose&#xff0c;并且连接数据库就会在本地运行 MongoDB了&#xff1a; // index.js var mongoose require(mongoose); mongoose.connect(…

前端DES加密

1、下载crypto.js文件库 https://github.com/brix/crypto-js/releases 2、引入文件 <script type"text/javascript" src"js/jquery.min.js"></script> <script src"js/rollups/tripledes.js"></script> <script src&…

DOMBOM(source、methods、contents、Application)

何为DOM&#xff1f; Document Object Model Dom&#xff0c;是W3C组织推荐的处理可扩展标志语言的标准编程接口。在网页上&#xff0c;组织页面的对象被组织在一个树形结构中&#xff0c;用来表示文档中对象的标准模型就称为DOM。 可以认为DOM是页面上数据和结构的一个树形表示…

sublime 无法下载插件解决办法(亲测有效)

最近发现sublime装不到插件 只需要在Preferences > Package Settings > Package Control > Settings - User页面加上以下代码即可&#xff1a; "channels":["https://erhan.in/channel_v3.json"]上述频道亲测有效&#xff0c;如果还不能使用的小…

ES命令

基础概念 Elasticsearch有几个核心概念。从一开始理解这些概念会对整个学习过程有莫大的帮助。 接近实时&#xff08;NRT&#xff09; Elasticsearch是一个接近实时的搜索平台。这意味着&#xff0c;从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟&#xff…

Bug : Bash on Ubuntu on Windows scp work on window but not in shell file

&#xff1a; No Permission转载于:https://www.cnblogs.com/rgqancy/p/10726154.html

图片做背景撑开div

需求点&#xff1a; 设计师给了一张超大背景图&#xff0c;需要做一个不知道大小广告位&#xff0c;要求就是要把图片撑满整个页面&#xff0c;而且还得保证自适应。 解决方案一 &#xff08;亲测有效&#xff09; HTML代码&#xff1a; <div class"wrap">…

十一、jQuery的基本用法

初步接触不是很习惯&#xff0c;之前都是用的js&#xff0c;但是jQuery去掉了js很多繁琐的内容&#xff0c;用的不是很熟&#xff0c;所以先简单的记录一下&#xff0c;后续在继续补充 jq获取html内容: $("#id") 获取id $(".class") class名 …

spring-注解---IOC(3)

spring--注解---IOC(3) package com.zwj.bean;public class Blue {public Blue(){System.out.println("blue...constructor");}public void init(){System.out.println("blue...init...");}public void detory(){System.out.println("blue...detory..…

绝对定位的div图片居中自适应

需求点 固定定位div中添加图片内容&#xff0c;保证图片垂直居中&#xff0c;并且自适应。 一般在第三方UI组件中&#xff0c;这种布局需求较为常见 解决方案一 &#xff08;亲测有效&#xff09; HTML代码&#xff1a; <div class"el-carousel__item is-active is…

英语进阶系列-A06-本周总结

本周总结 目录Content 英语进阶系列-A01-再别康桥 英语进阶系列-A02-英语学习的奥秘 英语进阶系列-A03-英语升级练习一 英语进阶系列-A04-英语升级练习二 英语进阶系列-A05-英语升级练习三 古诗Poem 再别康桥 回乡偶书 梅花 劝学 游子吟 词汇Vocabulary be; have; give; get; t…

在div中设置文字与内部div垂直居中

要实现如图一所示的结果&#xff1a; html代码如下&#xff1a; <!DOCTYPE html> <html><head lang"zh"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta charset"utf-8" /><title>商…

王之泰201771010131《面向对象程序设计(java)》第九周学习总结

第一部分&#xff1a;理论知识学习部分 第7章异常、日志、断言和调试 概念&#xff1a;异常、异常类型、异常声明、异常抛出、 异常捕获1.异常处理技术2.断言的概念及使用3.基本的调试技巧 1&#xff09;异常的概念 a.Java的异常处理机制可以控制程序从错误产生的 位置转移到能…