Java注解(Annotation)与元注解

你的名字 2024-03-31 08:19 172阅读 0赞

文章目录

        • 基本的Annotation介绍
            • @Override
            • @Deprecated
            • @SuppressWarnings
        • JDK的元Annotation
            • Retention //指定注解的作用范围,三种SOURCE,CLASS,RUNTIME
            • Target //指定注解可以在哪些地方使用
            • Documented //指定该注解是否会在javadoc体现
            • Inherited //子类会继承父类注解

1)注解(Annotation)也被称为元数据(Metadata),用于修饰解释包、类、方法、属性、构造器、局部变量等数据信息。
2)和注释一样,注解不影响程序逻辑,但注解可以被编逢或运行,相当于嵌入在代码中的补充信息。
3)在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。
在JavaEE中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替java EE 旧版中所遗留的繁冗代码和XML配置等。

基本的Annotation介绍

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

@Override

限定某个方法,是重写父类方法,该注解只能用于方法. crtl点进去之后还可以看到@interface, @interface不是interface, 是注解类, 是jdk1.5之后加入的

image-20221117174625863

image-20221117175839183

➢Override使用说明

@Override表示指定重写父类的方法(从编译层面验证) ,如果父类没有fly方法,则会报错

如果不写@Override注解,而父类仍有public void fly({} ,仍然构成重写

@Override只能修饰方法,不能修饰其它类,包,属性等等

查看@Override注解源码为@Target(ElementType.METHOD),说明只能修饰方法

@Target是修饰注解的注解,称为元注解

@Deprecated

用于表示某个程序元素(类,方法等)已过时, 可以修饰方法,类,字段,包,参数等等, @Deprecated的作用可以做到新旧版本的兼容和过渡.

image-20221117181503233

@SuppressWarnings

抑制编译器警告

➢说明各种值

  1. unchecked是忽略没有检查的警告
  2. rawtypes是忽略没有指定泛型的警告(传参时没有指定泛型的警告错误)
  3. unused是忽略没有使用某个变量的警告错误
  4. @SuppressWarnings可以修饰的程序元素为,查看@Target
  5. 生成@SupperssWarnings时,不用背,直接点击左侧的黄色提示,就可以选择(注意可以指定生成的位置)
JDK的元Annotation

JDK的元Annotation用于修饰其他Annotation元注解:
本身作用不大,讲这个原因希望同学们,看源码时,可以知道他是干什么,

元注解的种类(使用不多,了解,不用深入研究)

Retention //指定注解的作用范围,三种SOURCE,CLASS,RUNTIME

➢说明
只能用于修饰一个Annotation定义,用于指定该Annotation可以保留多长时间,
@Rentention包含一个RetentionPolicy类型的成员变量,使用@Rentention时必须为该value成员变量指定值:

➢@Retention的三种值

  1. RetentionPolicy.SOURCE编译器使用后,直接丢弃这种策略的注解
  2. RetentionPolicy.CLASS:编译器将把注释记录在class文件中.当运行Java程序时,JVM不会保留注解。这是默认值
  3. RetentionPolicy.RUNTIME:编译器将把注释记录在class文件中.当运行Java程序时,JVM会保留注解.程序可以通过反射获取该注解
Target //指定注解可以在哪些地方使用

➢基本说明
用于修饰Annotation定义,用于指定被修饰的Annotation能用于修饰哪些程序元素. @Target也包含一个名为value的成员变量。

image-20221117195528825

Documented //指定该注解是否会在javadoc体现

➢基本说明
@Documented:用于指定被该元Annotation修饰的Annotation类将被javadoc工具提取成文档,即在生成文档时,可以看到该注释。
说明:定义为Documented的注解必须设置Retention值为RUNTIME。

Inherited //子类会继承父类注解

被它修饰的Annotation将具有继承性如果某个类使用了被@Inherited修饰的Annotation,则其子类将自动具有该注解
说明:实际应用中,使用较少,了解即可。

元注解本身作用不大,讲这个原因希望同学们,看源码时,可以知道他是干什么的

发表评论

表情:
评论列表 (有 0 条评论,172人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java注解(Annotation)

    一、什么是注解        注解(Annotation)很重要,未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernat

    相关 java 注解Annotation

    注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记。 以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何

    相关 Java——注解Annotation

    1. 简介 官方解释:Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。 注解的定义: