Java 21的Enhanced Deprecation的笔记
1.Jetty的https模块2.Jetty的http模块3.Jetty的server模块4.Jetty的ssl模块5.Jetty的工作参数6.Jetty的模块7.Jetty的threadpool模块8.Jetty的console-capture模块9.Jetty的bytebufferpool模块10.Jetty的http3模块11.Jetty的http2模块12.Jetty的http-forwarded模块13.升级JDK时涉及的工作任务14.JNA使用入门15.javacpp使用入门16.那年追过的开发者测试工具17.arthas的使用入门18.Maven的常用插件19.Maven使用指南的笔记20.Maven快速上手使用指南的笔记21.Java 21的Preferences API的笔记22.GraalVM的资料23.Java 21的Concurrency的笔记24.Java 21的Pseudorandom的笔记25.Java 21的Process API的笔记26.Java 21的Collections Framework的笔记27.Java 21的Logging的笔记
28.Java 21的Enhanced Deprecation的笔记
-
Enhanced Deprecation
废弃API,一般可以理解为不推荐开发者在项目中使用的API,当前为了保持兼容,在JDK中保留,未来可能会删除。
作为开发者,使用工具jdeprscan
可以方便的查找现有代码中存在的一些废弃API的信息。 -
Deprecation in the JDK
废弃API出现的部分原因:- 一些比较危险的API,比如
Thread.stop
。 - 变更API的设计,提供新的API,导致已有的API被废弃。
- 新的API,提供更好的使用体验,导致已有的API被废弃。
- 即将被移除的API。
当前被废弃的API,可参考清单。
- 一些比较危险的API,比如
-
How to Deprecate APIs
在类或者方法上增加注解@Deprecated
,比如:-
标记版本号
@Deprecated(since="<version>") <version>
为版本号的说明,比如1.2
,表示从1.2
版本开始,相关API废弃,不再推荐开发者使用。 -
标记未来的删除可能性
@Deprecated(forRemoval=<boolean>) forRemoval
为boolean
类型,取值包括true
和false
。取值为true
,提示开发者相关API后续可能会被删除。 -
混合使用
@Deprecated(since="9", forRemoval=true)
在API的文档中增加标记
@deprecated
,提供更丰富的说明。
在现代的IDE中,@Deprecated
和@deprecated
需要成对使用。 -
-
编译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
的使用方法,可参考文档。
本文来自博客园,作者:jackieathome,转载请注明原文链接:https://www.cnblogs.com/jackieathome/p/18414976
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南