课时72:过期声明

简介: 所谓的过期操作指的是在一个软件项目的迭代开发过程之中,可能有某一个方法或者是某个类,由于在最初设计的时候考虑不周(存在缺陷),导致新版本的应用会有不适应的地方(老版本不影响),这个时候又不可能删除掉这些操作,那么就希望给一个过度的时间,于是就可以采用过期的声明,目的是告诉新的用户这些操作不要再继续使用,老的用户用了就用了。这样的方法就必须利用 “@Deprecated” 注解进行定义。

课时72:过期声明

 

摘要:所谓的过期操作指的是在一个软件项目的迭代开发过程之中,可能有某一个方法或者是某个类,由于在最初设计的时候考虑不周(存在缺陷),导致新版本的应用会有不适应的地方(老版本不影响),这个时候又不可能删除掉这些操作,那么就希望给一个过度的时间,于是就可以采用过期的声明,目的是告诉新的用户这些操作不要再继续使用,老的用户用了就用了。这样的方法就必须利用 “@Deprecated” 注解进行定义。


声明过期操作

1.1 老版本的范例

代码如下:

原有一个叫 Connect的方法,现添加一个叫 Connection的方法。原始的 Connect 有个缺陷:没有返回值。

class Channel {
    public void connect() {
        System.out.println("********** Channel **********");
    }
    
    public String connection() {
        return "获取了xxx通道连接信息。";
    }
}
public class JavaDemo {
    public static void main(String args[]) {
        new Channel().connect();
    }
}

image.png

运行结果为:

image.png

1.2 添加 @Deprecated的效果

现在希望能追加一个返回值,在代码中添加 @Deprecated,表示老系统继续用,如果是新的就不用了。在代码中 Connect属于老的,而 Connection属于新的。

代码如下:

class Channel {
    @Deprecated // 老系统继续用,如果是新的不要用了
    public void connect() {
        System.out.println("********** Channel **********");
    }
    public String connection() {
        return "获取了xxx通道连接信息。";
    }
}
public class JavaDemo {
    public static void main(String args[]) {
        new Channel().connect();
    }
}

image.png

此时的运行结果为:

image.png

运行结果显示:使用或覆盖了已过时的API。但是程序的执行并未受到影响。这种情况,就是 @Deprecated的使用效果。


在有一些开源项目里面特别讨厌:新版本出现之后,将里面的方法彻底变革样。


当然,我建议大家使用 @Deprecated这种方法,当然这种方法在我们的内库中特别常见,尤其是在 String里面会有很多大的 @Deprecated的方法出现,记住,此种方式可以比较柔和地实现一些代码的过度,这一点至关重要。

相关文章
|
9月前
|
Java 开发工具 uml
课时106:类图
本文介绍了UML(统一建模语言)及其在类图设计中的应用,重点讲解了使用Power Designer工具进行类图设计的具体步骤。UML通过图形化形式描述程序类关系,常见的设计工具有Rational Rose和Power Designer。文中详细说明了如何在Power Designer中新建类图、定义类的属性和方法、创建接口及其实现关系,并生成代码。此外,还介绍了将现有代码转换为类图的方法,以简化开发流程。总结指出,在实际项目中,通常会先编写代码再生成类图,以避免繁琐的设计过程。
273 2
课时106:类图
|
12月前
|
机器学习/深度学习 人工智能 PyTorch
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
阿里云GPU云服务器怎么样?阿里云GPU结合了GPU计算力与CPU计算力,主要应用于于深度学习、科学计算、图形可视化、视频处理多种应用场景,本文为您详细介绍阿里云GPU云服务器产品优势、应用场景以及最新活动价格。
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
|
9月前
|
存储 Java 编译器
课时60:子类对象实例化流程
摘要: 1.子类对象实例化要求 2.范例1:默认情况下的子类实例化 3.范例2:修改子类,显式使用 super() 4.范例3:父类仅提供有参构造方法,不使用无参构造 5.范例4:其他父类构造
166 6
|
9月前
|
Java 程序员 数据处理
课时19:Java运算符(位运算符)
课时19介绍Java中的位运算符,涵盖进制转换、位与、位或及移位操作。重点讲解了二进制与其他进制的转换方法,通过具体范例演示了位与和位或运算的过程,并展示了八进制和十六进制的处理方式。此外,还解释了逻辑运算符(&&、||)与位运算符(&、|)的区别及其应用场景,特别是位运算在加密中的应用。
275 5
|
9月前
|
Java
课时18:Java运算符(逻辑运算符)
课时18介绍了Java中的逻辑运算符(与、或、非)。通过范例详细讲解了非操作的使用,展示了如何正确应用逻辑非(!)。接着分别探讨了与操作(& 和 &&)及或操作(| 和 ||),强调了短路运算符(&& 和 ||)在性能和安全性上的优势。课程通过具体代码示例演示了不同逻辑运算符的效果及其应用场景。
244 5
|
9月前
|
Java
课时10:Java数据类型划分(整型类型)
本文主要围绕Java中整型数据展开,详细讲解整型变量、常量的概念,整型数据运算规则,包括数据溢出问题及解决方法,数据类型转换(自动转换与强制转换)的原理和注意事项,同时介绍了整型数据默认值的相关知识,以及byte数据类型与int数据类型的关系和使用场景,帮助读者全面掌握Java整型数据的相关内容。
235 4
|
9月前
|
设计模式 Java
课时111:定义枚举类
课时111介绍了枚举类的定义和使用。主要内容包括:枚举的概念、定义及与多例设计的区别,`values()`方法获取所有枚举对象,以及枚举在`switch`语句中的应用。枚举从JDK 1.5引入,简化了有限对象集合的定义,代码更简洁且编译时即可检查错误。示例展示了如何定义和使用枚举类,并对比了多例设计的复杂性。
145 1
|
9月前
|
存储
课时144:综合实战:超市购物车
本案例旨在运用面向对象编程的概念,模拟小明去超市购物的生活场景。 1.场景概述 2.代码实现步骤 3.代码优缺点分析
174 0
|
9月前
|
Java 测试技术 Android开发
课时148:junit测试工具
课时148介绍了JUnit测试工具的使用,包括定义、配置和编写测试程序。JUnit是流行的用例测试工具,用于确保代码稳定性。
193 0
|
存储 人工智能 搜索推荐
RAG系统的7个检索指标:信息检索任务准确性评估指南
大型语言模型(LLMs)在生成式AI领域备受关注,但其知识局限性和幻觉问题仍具挑战。检索增强生成(RAG)通过引入外部知识和上下文,有效解决了这些问题,并成为2024年最具影响力的AI技术之一。RAG评估需超越简单的实现方式,建立有效的性能度量标准。本文重点讨论了七个核心检索指标,包括准确率、精确率、召回率、F1分数、平均倒数排名(MRR)、平均精确率均值(MAP)和归一化折损累积增益(nDCG),为评估和优化RAG系统提供了重要依据。这些指标不仅在RAG中发挥作用,还广泛应用于搜索引擎、电子商务、推荐系统等领域。
6519 2
RAG系统的7个检索指标:信息检索任务准确性评估指南

热门文章

最新文章