文档章节

Java @Deprecated Annotation(注解)

honeymoose
 honeymoose
发布于 02/27 05:34
字数 938
阅读 209
收藏 0

在本部分的快速指南中,我们将会查看 Java 的 deprecated API 和如何在程序中使用 @Deprecated 注解。

@Deprecated Annotation(注解)

作为程序的进化和迭代,随着时间的推移,在项目中总会有些类,构造方法,字段,类型或者方法不建议人们继续继续使用。

为了避免程序向后兼容的问题,而导致程序或者 API 不能使用,我们将会对不再使用的元素使用 @Deprecate 注解来声明。

@Deprecated 主要目的是告诉其他的开发者标记的元素不要在程序中继续使用了

同时我们还建议在 @Deprecated 注解后面添加一些说明的文本来解释如果希望程序或者 API 具有相同的功能应该使用何种其他的方法。

SRC

https://github.com/cwiki-us-demo/java-tutorials/blob/master/core-java-modules/core-java-annotations/src/main/java/com/ossez/annotations/ClassWithDeprecatedMethod.java

  1. package com.ossez.annotations;
  2.  
  3.  
  4. public class ClassWithDeprecatedMethod {
  5.  
  6. /**
  7. * Calculate period between versions
  8. * * @deprecated
  9. * * This method is no longer acceptable to compute time between versions.
  10. * * <p> Use {@link ClassWithDeprecatedMethod#updatedMethod()} instead.
  11. */
  12. @Deprecated
  13. public static void deprecatedMethod() {
  14.  
  15. }
  16.  
  17. /**
  18. * Updated Method instead of deprecatedMethod.
  19. */
  20. public static void updatedMethod() {
  21. }
  22.  
  23. }

 

请注意,如果一个 Java  的元素被声明了,但是又在程序或者项目的其他地方被引用的话,编译器将会显示丢弃(deprecated)API 的警告。

在上面的示例代码中,如果 deprecatedMethod 被调用了,只有调用 deprecatedMethod 这个方法显示丢弃的警告。

同时请注意,通过使用 Javadoc @deprecate 标记,我们将会在 Java 文档中也被标记丢弃。

上面的代码,如果在 IDE 中查看文本,将会显示为如下:

Java 9 添加的可选属性

针对 Java 9 的 @Deprecated 注解,还添加了 since 和 forRemoval 属性。

since – 接受字符串的输入参数,用于定义我们丢弃的内容从哪个版本开始。默认为空字符串。

forRemoval  – 使用布尔(boolean)类型,用于标记我们丢弃的内容是不是从下一个发行的版本就会被删除。默认为 false。

如下面的代码中对上面属性的定义。需要注意的是,这个功能最低的版本为 Java 9,如果你还在使用 Java 8 的话,是不能被支持的,将会出现编译错误。

  1. /**
  2. * Calculate period between versions
  3. * * @deprecated
  4. * * This method is no longer acceptable to compute time between versions.
  5. * * <p> Use {@link ClassWithDeprecatedMethod#updatedMethod()} instead.
  6. */
  7. @Deprecated(since = "4.5", forRemoval = true)
  8. public static void deprecatedMethod() {
  9.  
  10. }

 

上面的内容表示的是 deprecatedMethod 方法是从版本 4.5 开始准备丢弃的,同时已经计划在下一个主要的发行版本中完全丢弃删除。

通过添加上面的内容,如果我们现在还在尝试使用这个方法的话,将会通知编译器给我们一个非常强烈的警告

同时,当前的主流 IDE 工具也能够明显的显示上面强提示。例如在 IntelliJ 中,删除线将会使用一个红色的删除线来替代当前使用的黑色删除线。

结论

在这个快速文章中,我们看到了如何使用 @Deprecated 声明来标记不再使用的元素,以及针对 Java 9 我们可以为其设置一些其他的属性以及这些属性的默认值。

完整的代码,请参考  GitHub 中的项目,可能项目中的源代码和文章中使用的代码有所不同,请以 GitHub 中的代码为主。

代码和内容的完整链接为:https://www.cwiki.us/display/JAVAZH/Java+@Deprecated+Annotation

© 著作权归作者所有

honeymoose
粉丝 4
博文 596
码字总数 277461
作品 0
宝山
私信 提问
加载中

评论(0)

Java Annotation之介绍篇 (1)

JAVA从J2SE5开始提供名为annotation(注释,标注)的功能。Java的annotation,可以附加在package, class, method, field等上面,相当于给它们添加了额外的辅助信息。附加在package, class, m...

夜真寒
2013/05/30
0
0
Java注解(Annotation)详解

Java注解(Annotation)详解 1.Annotation的概念 An annotation is a form of metadata, that can be added to Java source code. Classes, methods, variables, parameters and packages may......

幻海流心
2018/05/23
0
0
博客园首页新随笔联系订阅管理 随笔

注解Annotation实现原理与自定义注解例子 什么是注解? 对于很多初次接触的开发者来说应该都有这个疑问?Annontation是Java5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的...

onedotdot
2018/11/21
82
1
Java Annotation 简介

本文介绍了Java Annotation相关知识并附有相关的Demo。内容仅供参考使用,有不足之处请及时指出,也欢迎大家交流探讨。 Java Annotation 概述 Java Annotation翻译为Java 注解,注解也称为元...

村头细雨忆流年
2018/08/28
0
0
深入浅出Java Annotation(元注解和自定义注解)

一、基本概述    Annontation是Java5开始引入的新特征。中文名称一般叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)...

引鸩怼孑
2015/07/13
541
0

没有更多内容

加载失败,请刷新页面

加载更多

Python什么情况下会生成pyc文件?

作为Python爱好者,需要了解.py脚本的基本运行机制及特性: 在很多工作上Python的运行流程基本上取决于用户,因此源码不需要编译成二进制代码(否则无法实现大部分贴近用户的特性),而直接从...

Python圈子
28分钟前
23
0
Python正则表达式,这一篇就够了!

之前我们讲解了 正则表达式语法与引擎 的起源、发展、流派、语法、引擎、优化等相关知识,今天我们主要来学习一下 正则表达式在 Python语言 中的应用! 大多数编程语言的正则表达式设计都师从...

猪哥66
30分钟前
21
0
linux chattr命令的使用

chattr命令用来改变文件属性。这项指令可改变存放在ext2文件系统上的文件或目录属性 , 用chattr命令防止系统中某个关键文件被修改 添加属性i:不得任意更动文件或目录。 chattr +i /home/ww...

imzchloe
30分钟前
19
0
基于三维GIS技术的符号化表达系统的设计及实现

随着三维GIS技术的发展,人们在其可视化能力方面要求不断提高,在部分应用中,人们不仅要求将场景中物体位置准确描述表达出来,同时还需要保证其逼真性和美观性在智慧城市阶段,三维GIS的构建...

ZTMAP
33分钟前
21
0
技术分享 | 排序(filesort)详细解析(8000 字长文)

作者:高鹏(网名八怪) 文章末尾有他著作的《深入理解 MySQL 主从原理 32 讲》,深入透彻理解 MySQL 主从,GTID 相关技术知识。 本文来源:转载自公众号-老叶茶馆 *爱可生开源社区出品,原创...

爱可生
36分钟前
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部