当前位置: 首页 > 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的使用方法,可参考文档。

相关文章:

Java 21的Enhanced Deprecation的笔记

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

Ubuntu下Git使用教程:从入门到实践

引言 在软件开发和版本控制领域&#xff0c;Git无疑是最为流行的工具之一。它不仅能够帮助我们高效地管理代码&#xff0c;还能促进团队协作&#xff0c;确保项目的持续集成与交付。对于使用Ubuntu操作系统的开发者而言&#xff0c;掌握Git的使用技巧尤为重要。本文将带您一步…...

【开放词汇检测】基于MMDetection的MM-Grounding-DINO实战

文章目录 摘要安装基础环境新建虚拟环境安装pytorch安装openmim、mmengine、mmcv安装 MMDetection验证安装配置OV-DINO环境 MMDetection的MM-Grounding-DINO详细介绍测试结果Zero-Shot COCO 结果与模型Zero-Shot LVIS ResultsZero-Shot ODinW&#xff08;野生环境下的目标检测&…...

PLC-Recorder 对西门子传动的采集方法

目录 一、增加西门子传动的通道 二、变量配置 2.1 语法格式 a&#xff1a;装置号 b&#xff1a;参数号 c&#xff1a;参数下标 2.2 配置及连接测试情况 三、正式采集 四、小结 PLC-Recorder V3.4.0版本增加了西门子传动参数采集的功能&#xff08;增加了传动的设备类型&a…...

【网络通信基础与实践第三讲】传输层协议概述包括UDP协议和TCP协议

一、进程间的通信 通信的两端应当是两个主机中的应用进程&#xff0c;也就是说&#xff0c;端到端的通信是应用进程之间的通信 运输层有一个很重要的功能就是复用和分用&#xff0c;复用是指在发送方不同的应用进程都可以使用同一个运输层协议传送数据&#xff0c;分用是指接…...

centos更改静态ip

点击网络和internet设置 点击更改适配器 、点击属性...

YOLOv5/v8 + 双目相机测距

yolov5/v8双目相机测距的代码&#xff0c;需要相机标定 可以训练自己的模型并检测测距&#xff0c;都是python代码 已多次实验&#xff0c;代码无报错。 非常适合做类似的双目课题&#xff01; 相机用的是汇博视捷的双目相机&#xff0c;具体型号见下图。 用的yolov5是6.1版本的…...

双三次插值及MATLAB实现

一、双三次插值的概念 双三次插值&#xff08;Bicubic interpolation&#xff09;&#xff0c;又叫双立方插值。在数值分析这个数学分支中&#xff0c;双三次插值是二维空间中最常用的插值方法。在这种方法中&#xff0c;函数f在点 (x0 ,y0) 的值不仅考虑其直接邻接点对其的影响…...

Kubernetes 持续集成与交付(CI/CD)

Kubernetes 持续集成与交付&#xff08;CI/CD&#xff09;详解 Kubernetes 是目前主流的容器编排平台&#xff0c;而在 DevOps 的实践中&#xff0c;持续集成与持续交付&#xff08;CI/CD&#xff09;是自动化软件开发与运维的核心环节。Kubernetes 与 CI/CD 的结合&#xff0…...

【Rust练习】14.流程控制

练习题来自&#xff1a;https://practice-zh.course.rs/flow-control.html 1 // 填空 fn main() {let n 5;if n < 0 {println!("{} is negative", n);} __ n > 0 {println!("{} is positive", n);} __ {println!("{} is zero", n);} } …...

React-Hooks-Form 集成 Zod 校验库

React-Hooks-Form 集成 Zod 校验库 首先需要安装 react hooks form 官方提交的解析器 npm install hookform/resolvers再安装校验库 npm install zod它不仅支持 Zod 校验库同时还支持目前各种主流的校验库比如&#xff1a;Yup、Zod、Joi、Ajv、Vest、Custom 具体查看官方文…...

kettle从入门到精通 第八十五课 ETL之kettle kettle中javascript步骤调用外部javascript/js文件

场景&#xff1a;交流学习群里面有小伙伴咨询kettle中的javascript代码步骤如何调用外部js文件中的函数&#xff0c;觉得有点意思的&#xff0c;于是就抽时间整理了一下。 1、外部js文件为test.js&#xff0c;代码如下&#xff1a; function test(param){return "接收到了…...

比传统机器学习更先进的深度学习神经网络的二分类建模全流程教程

比传统机器学习更先进的深度学习神经网络的二分类建模全流程分析教程 深度学习介绍和与传统机器学习的区别 深度学习&#xff08;Deep Learning&#xff09;是一种机器学习的分支&#xff0c;基于多层神经网络模型&#xff0c;能够自动从大量数据中学习特征并进行预测。深度学…...

TeamTalk梳理概括

文章目录 即时通讯重点概括展开聊聊单聊消息流转流程展开聊聊群聊消息流转流程群成员管理数据库MySQL连接池设计redis连接池设计文件传输原理实时性并发能力 db_proxy_server reactor响应处理流程单聊消息消息如何封装&#xff1f;如何保证对端完整解析一帧消息&#xff1f;协议…...

构建“零工市场小程序”,服务灵活就业“大民生”

如今&#xff0c;灵活就业已成为现代劳动力市场的重要组成部分。然而&#xff0c;这一就业形态也面临着信息不对称、匹配效率低下等一系列挑战。为有效解决这些问题&#xff0c;构建一个高效、便捷的“零工市场小程序”显得尤为重要。 二、零工市场现状与挑战 市场规模与增长趋…...

【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 苹果格式

【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 Heic2any: Client-side conversion of HEIC/HEIF image files to JPEG,PNG, or GIF in the browser.https://alexcorvi.github.io/heic2any/#demo GitHub - alexcorvi/heic2any: Converting HEIF/HEIF image formats to PN…...

Vue3中slot插槽的几种使用实践

【1】默认插槽 父组件 <Category title"今日美食城市"><img :src"imgUrl" alt""> </Category>子组件 <div class"category"><h2>{{title}}</h2><slot>默认内容</slot> </div&g…...

SSH工具 MobaXterm的使用与快捷配置

软件下载/安装与链接服务器/本地虚拟机 文章目录 软件下载/安装与链接服务器/本地虚拟机软件下载软件安装使用软件链接非本地机器并设置用户密码我不想有确定密码的弹窗 其余便捷配置配置右键粘贴SSH链接设置 软件下载 如果你访问不了这个网址&#xff0c;可以评论区找博主或者…...

git 远程分支同步本地落后的有冲突的分支

如果你的本地分支已经修改了很多代码&#xff0c;但同时也已经落后于远程分支。这个时候你需要在主分支上拉最新的代码&#xff0c;然后切换到你的分支。 如主分支是 main &#xff0c;从分支是xing。 首先切换到子分支 $ git checkout xing 然后请求merge主分支main的代码 …...

如何基于Java解析国密数字证书

一、说明 随着信息安全的重要性日益凸显&#xff0c;数字证书在各种安全通信场景中扮演着至关重要的角色。国密算法&#xff0c;作为我国自主研发的加密算法标准&#xff0c;其应用也愈发广泛。然而&#xff0c;在Java环境中解析使用国密算法的数字证书时&#xff0c;我们可能…...

为什么在银河麒麟上配置telnet?安全风险与替代方案探讨

银河麒麟系统中Telnet协议的深度安全剖析与现代替代方案 在国产操作系统银河麒麟上配置传统网络服务时&#xff0c;技术决策者常面临一个经典困境&#xff1a;是沿用熟悉的Telnet协议快速解决问题&#xff0c;还是投入资源迁移到更安全的现代方案&#xff1f;这个问题看似简单&…...

League-Toolkit:英雄联盟客户端集成工具包的全方位应用指南

League-Toolkit&#xff1a;英雄联盟客户端集成工具包的全方位应用指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 一、游戏场景中的实际挑…...

PyFluent:重新定义CFD仿真的Python原生接口解决方案

PyFluent&#xff1a;重新定义CFD仿真的Python原生接口解决方案 【免费下载链接】pyfluent Pythonic interface to Ansys Fluent 项目地址: https://gitcode.com/gh_mirrors/pyf/pyfluent PyFluent作为Ansys Fluent的Python原生接口&#xff0c;代表了计算流体动力学&am…...

Phi-4-mini-reasoning自动化测试方案:生成测试数据与验证逻辑

Phi-4-mini-reasoning自动化测试方案&#xff1a;生成测试数据与验证逻辑 1. 引言&#xff1a;当AI遇上软件测试 最近跟几个测试团队聊天&#xff0c;发现他们都在为同样的事情头疼&#xff1a;手工编写测试用例耗时费力&#xff0c;边界条件覆盖不全&#xff0c;测试结果验证…...

12. 本地算力不足?云服务器选型指南(高性价比+适配大模型)

001、算力困境:为什么我们需要云服务器? 从一次深夜调试说起 上周三凌晨两点,我的本地工作站风扇开始狂转——16核CPU占用率97%,64GB内存基本吃满,两块3090显卡的显存指示灯红得发烫。屏幕上正在跑一个7B参数的模型微调任务,进度条卡在23%已经半小时没动过。终端里突然…...

Qwen-Image-Layered体验报告:实测一键图片分层,效果惊艳,操作简单

Qwen-Image-Layered体验报告&#xff1a;实测一键图片分层&#xff0c;效果惊艳&#xff0c;操作简单 1. 为什么你需要关注图片分层技术&#xff1f; 想象一下这样的场景&#xff1a;客户发来一张产品海报&#xff0c;要求你把背景换成星空&#xff0c;把产品颜色从红色改成蓝…...

ABAQUS 蜜蜂飞行仿真:翅膀与空气、水域交替接触的奇妙之旅

ABAQUS蜜蜂飞行仿真分析&#xff0c;翅膀与空气和水域交替接触在科学研究和工程模拟领域&#xff0c;ABAQUS 是一款强大的有限元分析软件。今天咱们就来聊聊用 ABAQUS 进行蜜蜂飞行仿真分析&#xff0c;特别是翅膀与空气和水域交替接触这种独特场景。 蜜蜂飞行仿真的意义 蜜蜂作…...

QWEN-AUDIO功能全解析:声波可视化、情感指令、四种人声,到底怎么用?

QWEN-AUDIO功能全解析&#xff1a;声波可视化、情感指令、四种人声&#xff0c;到底怎么用&#xff1f; 1. 认识QWEN-AUDIO语音合成系统 QWEN-AUDIO是一款基于Qwen3-Audio架构构建的智能语音合成系统&#xff0c;它能够将文字转换成带有情感和温度的自然语音。这个系统最特别…...

卡证检测模型自动化测试:Python脚本构建测试用例

卡证检测模型自动化测试&#xff1a;Python脚本构建测试用例 最近在部署一个卡证检测模型服务&#xff0c;上线前心里总有点不踏实。模型在开发环境跑得挺好&#xff0c;但真放到线上&#xff0c;面对各种五花八门的证件图片——光线暗的、角度歪的、背景杂乱的——它能扛得住…...

IMU660RA姿态解算实战:从传感器滤波到欧拉角输出的完整实现

1. IMU660RA姿态解算入门指南 刚拿到IMU660RA传感器时&#xff0c;我和大多数工程师一样兴奋又忐忑。这款常用于无人机和智能车的惯性测量单元&#xff0c;能提供关键的姿态数据&#xff0c;但原始数据就像未经打磨的玉石——需要一系列处理才能展现价值。姿态解算的核心目标&a…...