千字走进注解的领域 | 带你学《Java面向对象编程》之四十六

简介: 本节将为读者介绍常见的三个注解-@Override、@Deprecated和@SuppressWarnings的作用与用法。

上一篇:三分钟带你认识注解 | 带你学《Java面向对象编程》之四十五
【本节目标】
通过阅读本节内容,你将初步掌握编程过程中常见的三个注解的作用及使用方法,并能够通过各种注解简化、规范化自己的编程过程。

准确的覆写:@Override

当子类继承某一个父类之后,如果发现父类中的某些方法功能不足的时候往往会采用覆写的形式来对方法功能进行扩充,于是接下来首先来观察一种覆写操作。
范例:观察覆写的问题

class Channel {
    public void connect () {
        System.out.println(“********** Channel ************”) ;
    }
}
class DatabaseChannel extends Channel {
    public void connect() {
        System.out.println(“子类定义的通道连接操作。”) ;
    }
}
public class JavaDemo{
   public static void main(String args[]) {
        new DatabaseChannel().connect() ;
   }
}

执行结果:子类定义的通道连接操作。
开发之中经常要出现的两个问题:

  • 虽然要明确的继承一个父类并且进行方法的覆写,但是有可能由于疏忽忘记编写extends,于是这个时候不是覆写。class DatabaseChannel extends Channel
  • 在进行方法覆写的时候单词写错了。public void connection() {}

此时即便单词写错了,实际上程序在编译的时候也不会出现任何的错误信息,因为它认为这是一个新的方法。所以在开发之中为了避免这种问题的出现,可以在明确覆写的方法上追加有一个注解。
范例:追加注解

class Channel {
    public void connect () {
        System.out.println(“********** Channel ************”) ;
    }
}
class DatabaseChannel extends Channel {
    @override   //明确表示该方法是一个覆写来的方法
    public void connect() {
        System.out.println(“子类定义的通道连接操作。”) ;
    }
}
public class JavaDemo{
   public static void main(String args[]) {
        new DatabaseChannel().connect() ;
   }
}

该注解主要是帮助开发者在程序编译的时候可以检查出程序的错误。

过期操作:@Deprecated

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

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
图一 执行结果

在有一些开源项目中有些比较烦人的问题:新版本出现后,将里面的方法彻底变样。

压制警告:@SuppressWarnings

以之前的过期程序为例,可以发现在进行程序编译的时候会出现一个错误的提示信息:

image.png
图二 错误提示信息

如果此时不愿意见到这些提示信息(或者已经明确知道错误在哪里),那么就可以进行错误警告信息的压制:

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() ;
   }
}

它做的只是让警告信息不出现,不出现干扰而已。
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:初识面向对象第三特征-多态 | 带你学《Java面向对象编程》之四十七
更多Java面向对象编程文章查看此处

相关文章
|
20天前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
85 43
Java学习十六—掌握注解:让编程更简单
|
15天前
|
Java 开发者 Spring
[Java]自定义注解
本文介绍了Java中的四个元注解(@Target、@Retention、@Documented、@Inherited)及其使用方法,并详细讲解了自定义注解的定义和使用细节。文章还提到了Spring框架中的@AliasFor注解,通过示例帮助读者更好地理解和应用这些注解。文中强调了注解的生命周期、继承性和文档化特性,适合初学者和进阶开发者参考。
39 14
|
15天前
|
前端开发 Java
[Java]讲解@CallerSensitive注解
本文介绍了 `@CallerSensitive` 注解及其作用,通过 `Reflection.getCallerClass()` 方法返回调用方的 Class 对象。文章还详细解释了如何通过配置 VM Options 使自定义类被启动类加载器加载,以识别该注解。涉及的 VM Options 包括 `-Xbootclasspath`、`-Xbootclasspath/a` 和 `-Xbootclasspath/p`。最后,推荐了几篇关于 ClassLoader 的详细文章,供读者进一步学习。
26 12
|
8天前
|
Java 编译器
Java进阶之标准注解
Java进阶之标准注解
20 0
|
1月前
|
JSON Java 数据库
java 常用注解大全、注解笔记
关于Java常用注解的大全和笔记,涵盖了实体类、JSON处理、HTTP请求映射等多个方面的注解使用。
34 0
java 常用注解大全、注解笔记
|
26天前
|
IDE Java 编译器
java的反射与注解
java的反射与注解
16 0
|
1月前
|
XML Java 数据格式
Java-spring注解的作用
Java-spring注解的作用
21 0
|
6月前
|
安全 Java 编译器
Java其他: 什么是Java中的注解(Annotation)?
Java其他: 什么是Java中的注解(Annotation)?
78 0
|
SQL XML SpringCloudAlibaba
Java独有特性:注解(annotation)
注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。它本身并不起任何作用,可以说有它没它都不影响程序的正常运行,注解的作用在于**「注解的处理程序」**,注解处理程序通过捕获
169 0
|
6月前
|
Java 编译器 开发者
Java注解(Annotation)技术深入解析
Java注解(Annotation)技术深入解析
447 1