课时73:压制警告 @SuppressWarings
摘要:大家想想一种场景,比如说我在路上开了一辆智能能车,我坐车里挺舒服的,且车特别智能,就要前方有人,就会提醒我:有危险有危险。如果我现在在一条人很多的道上开车,这个时候车就会一直提示:有危险有危险。我们本就知道人多危险,智能汽车的提示就会使人烦躁。让智能汽车停止提示的过程,就是压制警告。
压制警告
1.1 警告持续
以之前的过期程序为例,可以发现在进行程序编译的时候会出现一个错误的提示信息。如下图所示:
例如使用以下代码,此时代码使用的是 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().connection(); } }
此时的运行结果为:
并未出错。
1.2 警告消失
如若此时使用的代码是Connect,此时不愿意见到这些提示信息(或者已经明确的知道了错误在哪里),那么就可以进行警告信息的压制。如以下代码所示,在程序中加入 Rawtypes,一种压制模式,并不需要背诵,因为以后用到 Eclipse工具时会自动声明,无需背诵。
代码如下:
class Channel { @Deprecated // 老系统继续用,如果是新的不要用了 public void connect() { System.out.println("********** Channel **********"); } public String connection() { return "获取了Xxx通道连接信息。"; } } public class JavaDemo { @SuppressWarnings({"deprecation"}) public static void main(String args[]) { new Channel().connect(); } }
此时的运行结果为:
此时并无警告。
它做的只是让警告信息不出现,不骚扰你而已。这个过程我们后面会经常见到,而对于这些操作的话,至于跟什么类型没有必要去强记,因为开发工具都能帮我们自动生成类型,这就是我们说的压制警告。这三种都属于结构性的东西,用开发工具都能自动生成。