首页 > 编程语言 >Java 21的Enhanced Deprecation的笔记

Java 21的Enhanced Deprecation的笔记

时间:2024-09-15 09:35:08浏览次数:6  
标签:Deprecation Java 21 Deprecated 编译 Xlint API 使用 废弃

  • 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的使用方法,可参考文档

标签:Deprecation,Java,21,Deprecated,编译,Xlint,API,使用,废弃
From: https://www.cnblogs.com/jackieathome/p/18414976

相关文章

  • 4.Java面向对象第四章方法重写与多态
    4.Java面向对象第四章方法重写与多态文章目录4.Java面向对象第四章方法重写与多态一、方法重写二、Object三、类型转换四、抽象一、方法重写1.在子类与父类之间2.方法名相同3.参数个数和类型相同5.访问权限不能严于父类二、Objectobject类是超类(基类)Java中......
  • Windows11里如何设置Java环境变量(详细版)
      1.基本详情           首先介绍一下基本的情况,jdk安装有两种,一种是压缩包,另一种就是官网下载的。官网链接:Java下载|Oracle中国 记住安装时的路径,我们在设置环境时,要用到它。建议就放在默认的C盘里面如何复制路径?右击上面窗口的jdk1.8.0处注意:是复......
  • 7.Java面向对象第七章 异常
    6.Java面向对象异常文章目录6.Java面向对象异常二、抛出异常三、声明异常四、自定义异常try{可能会报错的代码}catch(Exceptione){异常处理代码}try{可能会报错的代码}cstch(Exceptione){异常处理代码}finally{不管程序是否报错......
  • Java计算机毕业设计小学生英文绘本网站(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在全球化日益加深的今天,英语作为国际通用语言的重要性不言而喻。对于小学生而言,早期接触并培养英语学习兴趣至关重要。然而,传统英语教学方式往往侧重......
  • Java计算机毕业设计校园疫情防控系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着全球新冠疫情的持续演变,校园作为人员密集、交流频繁的场所,其疫情防控工作显得尤为重要。传统的人工管理模式在应对大规模学生健康监测、紧急事件......
  • Java计算机毕业设计药库药品智能入库出库及流转管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着医疗技术的不断进步和人们对健康需求的日益增长,药品管理成为医疗机构运营中至关重要的一环。传统的手工或半自动化药品管理模式已难以满足现代医......
  • Java计算机毕业设计校园跳蚤市场管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高校教育环境的日益丰富与多元化,校园经济逐渐展现出其独特的活力与潜力。传统的二手物品交换方式,如宿舍楼下的临时摊位、校园论坛的零散信息,已难......
  • 重拾java-------day2(下载,特点,运行过程,环境变量)
    java背景前言一、java背景二、特点虚拟机jvm(跨平台)jvm,jre,jdkjava程序的运行过程环境变量的配置前言“我曾经喜欢过你,但可惜我先成了大人……”加油!少年一、java背景由SUN公司开发,意思是盛产咖啡的爪哇岛由oracle公司收购,意味着要去oracle公司官网下载二、......
  • JavaScript 中的异步任务、同步任务、宏任务与微任务
    JavaScript中的异步任务、同步任务、宏任务与微任务在JavaScript的世界里,理解异步任务、同步任务、宏任务和微任务是非常重要的,它们共同构成了JavaScript独特的执行机制。一、同步任务与异步任务1.同步任务定义:同步任务是在代码执行过程中,按照顺序依次执行的任务......
  • Java 学习路线:语言、框架、中间件与数据库
    Java是一门功能强大、应用广泛的编程语言,适用于企业级应用、Web开发、大数据处理、Android开发等各种场景。这里为大家介绍了一下我认为较为合适的学习路线一、Java基础1.1Java语言基础1.1.1安装JDK和IDE安装JDK:下载JDK:访问Oracle官网,下载最新的JavaDevelopm......