当前位置: 首页 > news >正文

Java 21的Enhanced Deprecation的笔记

  • Java Core Libraries

  • Enhanced Deprecation
    废弃API,一般可以理解为不推荐开发者在项目中使用的API,当前为了保持兼容,在JDK中保留,未来可能会删除。
    作为开发者,使用工具jdeprscan可以方便的查找现有代码中存在的一些废弃API的信息。

  • Deprecation in the JDK
    废弃API出现的部分原因:

    • 一些比较危险的API,比如Thread.stop
    • 变更API的设计,提供新的API,导致已有的API被废弃。
    • 新的API,提供更好的使用体验,导致已有的API被废弃。
    • 即将被移除的API。

    当前被废弃的API,可参考清单。

  • How to Deprecate APIs
    在类或者方法上增加注解@Deprecated,比如:

    • 标记版本号

      @Deprecated(since="<version>")
      

      <version>为版本号的说明,比如1.2,表示从1.2版本开始,相关API废弃,不再推荐开发者使用。

    • 标记未来的删除可能性

      @Deprecated(forRemoval=<boolean>)
      

      forRemovalboolean类型,取值包括truefalse。取值为true,提示开发者相关API后续可能会被删除。

    • 混合使用

      @Deprecated(since="9", forRemoval=true)
      

    在API的文档中增加标记@deprecated,提供更丰富的说明。
    在现代的IDE中,@Deprecated@deprecated需要成对使用。

  • Notifications and Warnings

    编译Java代码时,增加选项-Xlint:deprecation-Xlint:removal,可以获得废弃API的相应提示信息。
    编译命令的样例,如下:

    javac -Xlint:deprecation -Xlint:removal src/example/DeprecationExample.java
    

    出于兼容的原因,消除废弃API的使用,需要一个过程,因此为了避免恼人的警告影响心情,对于一些确认无伤大雅的废弃API,可以在项目代码中增加注解,即使用如下方式屏蔽相应的编译警告。

    • 使用@SuppressWarnings("deprecation"),屏蔽废弃API的编译警告。
    • 使用@SuppressWarnings("removal"),屏蔽废弃API可能被移除的编译警告。
    • 使用@SuppressWarnings({"deprecation","removal"}),同时屏蔽废弃API和可能被移除的编译警告。
  • Running jdeprscan
    jdeprscan的使用方法,可参考文档。


http://www.mrgr.cn/news/27354.html

相关文章:

  • nacos和eureka的区别
  • 数据集 wider person 户外密集行人检测 >> DataBall
  • node.js精品课程网站—计算机毕业设计源码27724
  • JNI编程实现原理
  • 三维点云处理(C++)学习记录——PDAL
  • 技术周总结 09.09~09.15周日(C# WinForm WPF)
  • 使用Flux以文生图
  • [产品管理-16]:NPDP新产品开发 - 14 - 产品创新流程 - 产品创新流程模型比较:门径、IPD、精益生产、敏捷、系统工程、设计思维、精益创业
  • Java 全面指南:从入门到精通
  • PMP--一模--解题--61-70
  • re题(19)BUUCTF[ACTF新生赛2020]easyre
  • 【MySQL-初级】mysql基础操作(账户、数据库、表的增删查改)
  • 【C#生态园】选择最适合你的工具:C# GUI库完整比较及指南
  • 大模型大侦探-一次丝滑的探图记录
  • MyBatis系统学习(二)——MyBatis 核心配置与对象解析
  • 知识竞赛活动舞台搭建要多少钱
  • stm32单片机个人学习笔记3(GPIO输出)
  • Visual Studio打开项目的一些小技巧
  • 7-14 电话聊天狂人(map)
  • 本地部署轻量级web开发框架Flask结合内网穿透公网环境访问管理界面