第二十六章、JavaSE必知必会二之基础注解详述(Override、Deprecated、SupperssWarnings)

1、注解概述

1.1、注解介绍

(1)含义

​ 注解也称为元数据,用来修饰包、类、方法、属性、构造器、局部变量

(2)作用

​ 同注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息。

(3)使用方式

​ 使用注解时要在其前面增加**@符号**,并把该注解当成一个基本的修饰符使用,用于修饰它支持的程序元素。

1.2、注解使用场景

(1)JavaSE注解作用

  • ①标记过时功能
  • ②忽略警告

(2)JavaEE

  • 配置应用程序的任何切面
  • 代替旧版JavaEE所遗留的繁冗代码和XML配置

2、基本注解之@Override

  • 含义:编译器进行语法校验,限定某个方法是重写父类的方法,该注解只能用于方法

  • 范例:

// 1、创建父类
class Father{
    public void fly(){
        System.out.println("站在时代的风口,猪都能飞起来!!!");
    }
}

// 2、创建子类
class Son extends Father{
    @Override
    public void  fly(){
        System.out.println("猪又跌下来了,太惨了!!!!!");
    }
}

// 3、main方法调用
public class String01 {
    public static void main(String[] args) {
        Son son = new Son();
        son.fly();

    }
}
  • 运行结果

在这里插入图片描述

  • 详细解读:
    • 主要作用:@Override注解放在fly方法上,编译器就会检查该方法是否真的重写了父类的方法,如果的确重写了,则编译通过,如果没有构成重写,则编译错误。

3、基本注解之@Deprecated

  • 含义:表示某个程序元素(类、构造器)已过时即可以使用但不推荐

  • 应用场景:一般用来版本升级过度

  • 范例:

// 1、创建父类
class Father{
    public void fly(){
        System.out.println("站在时代的风口,猪都能飞起来!!!");
    }
}

// 2、创建子类
class Son extends Father{
    @Override
    public void  fly(){
        System.out.println("猪又跌下来了,太惨了!!!!!");
    }
}

// 3、main方法调用
public class String01 {
    public static void main(String[] args) {
        Son son = new Son();
        son.fly();

    }
}
  • 如图

在这里插入图片描述

4、基本注解之@SupperssWarnings

  • 含义:抑制编译器警告,即不显示警告

  • 范例:不加注解前

public class String01 {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("one");
        list.add("two");
        list.add("three");
        System.out.println(list.get(2));
    }
}
  • 显示界面

在这里插入图片描述

  • 范例:加注解后
public class String01 {
    @SuppressWarnings({"rawtypes","unchecked","unused"})
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("one");
        list.add("two");
        list.add("three");
        System.out.println(list.get(2));
    }
}
  • 显示界面

在这里插入图片描述

5、元注解

  • 含义:修饰注解的注解,主要是看源码时了解
5.1、元注解之@Target
  • 含义:指定注解可以能用于修饰那些程序元素

  • 值详述:

    • ElementType.ANNOTATION TYPE/PACKAGE/METHOD…
  • 范例

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
  • 解读:Override注解只能作用于METHOD
5.2、元注解之Retention
  • 含义:指定注解的作用时间范围,包含SOURCE,CLASS,RUNTIME三种

  • 值详述

    • RetentionPoilcy.SOURCE:编译器使用后,直接丢弃这种策略的注释
    • RetentionPolicy.CLASS:编译器将把注释记录在class文件中。当运行java程序后JVM不会保留,这是默认值编译时生效
    • RetentionPolicy.RUNTIME:编译器将把注释记录在class文件中。当运行java程序后JVM会保留注释,程序可以通过反射获取该注解运行时生效
  • 作用示意图如下

在这里插入图片描述

  • 范例
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
  • 解读:Override应用时间范围在编译器检查时,编译运行不会被保留
5.3、元注解之Documented
  • 含义:指定该注解是否会在javaCode体现,即被该注解修饰的相关元素能被javadoc工具提取成文档,即在生成文档时,可以看到该注释。

暂留以后细述

5.4、元注解之Inherited
  • 含义:子类会继承父类注解

暂留以后细述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随缘清风殇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值