课时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(); } }
运行结果为:
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(); } }
此时的运行结果为:
运行结果显示:使用或覆盖了已过时的API。但是程序的执行并未受到影响。这种情况,就是 @Deprecated的使用效果。
在有一些开源项目里面特别讨厌:新版本出现之后,将里面的方法彻底变革样。
当然,我建议大家使用 @Deprecated这种方法,当然这种方法在我们的内库中特别常见,尤其是在 String里面会有很多大的 @Deprecated的方法出现,记住,此种方式可以比较柔和地实现一些代码的过度,这一点至关重要。