美文网首页
JAVA注解

JAVA注解

作者: 独自闯天涯的码农 | 来源:发表于2022-03-29 17:59 被阅读0次

一、元数据

要想理解注解 (Annotation)的作用,就要先理解Java中元数据的概念。

1. 元数据概念

元数据是关于数据的数据。在编程语言上下文中,元数据是添加到程序元素如方法、字段、类和包上的额外信息。对数据进行说明描述的数据。

2. 元数据的作用

一般来说,元数据可以用于创建文档(根据程序元素上的注释创建文档),跟踪代码中的依赖性(可声明方法是重载,依赖父类的方法),执行编译时检查(可声明是否编译期检测),代码分析。
如下:
1)编写文档:通过代码里标识的元数据生成文档
2)代码分析:通过代码里标识的元数据对代码进行分析
3)编译检查:通过代码里标识的元数据让编译器能实现基本的编译检查

3. Java千台元数据

注解Annotation就是iava平台的元数据,是J2SE5.0新增加的功能,该机制允许在Java 代码中添加自定义注释,并允许通过反射(reflection),以编程方式访问元数据注释。通过提供为程序元素(类、方法等)附加额外数据的标准方法,元数据功能具有简化和改进许多应用程序开发领域的潜在能力,其中包括配置管理、框架实现和代码生成。

二、注解Annotation

1. 注解概念

注解(Annotation) 在JDK1.5之后增加的一个新特性,注解的引入意义很大,有很多非常有名的框架,比如Hibernate、Spring等框架中都大量使用注解。注解作为程序的元数据嵌入到程序。汪解可以被解析工具或编译工具解析、关于汪解 (Annotation)的作用,其实就是上述元数据的作用。

注意:Annotation能被用来为程序元素(类、方法、成员变量等)设置元数据。Annotaion不影响程序代码的执行,无论增加、删除Annotation,代码都始终如一地执行。如果希望让程序中的Annotation起一定的作用,只有通过解析工具或编译工具对Annotation中的信息进行解析和处理。

2. 内建注解

Java提供了多种内建的汪解,下面接下几个比较常用的注解:@Override、
@Deprecated、@SuppressWarnings以及@Functionalintertace 这4个注解。内建汪解主要实现了元数据的第二个作用:编译检查。

  • @Override
    用途:用于告知编译器,我们需要覆写超类的当前方法。如果某个方法带有该注解但并没有覆写超类相应的方法,则编译器会生成一条错误信息。如果父类没有这个要覆写的方法,则编译器也会生成一条错误信息。
    @override可适用元素为方法,仅仅保留在java源文件中。

  • @Deprecated
    用途:使用这个注解,用于告知编译器,某一程序元素(比如方法,成员变量)不建议使用了(即过时了)

  • @SuppressWarnings
    用途:用于告知编译器忽略特定的警告信息,例在泛型中使用原生数据类型,编译器会发出警告,当使用该注解后,则不会发出警告。
    注解类型分析:@Suppresswarnings可适合用于除注解类型声明和包名之外的
    所有元素,仅仅保留在java源文件中。
    该注解有方法value(),可支持多个宇符串参数,用户指定忽略哪种警告,例如:

@Supresswarning (value={"uncheck", "deprecation"})
  • @Functionalinterface
    用途:用户告知编译器,检查这个接口,保证该接口是函数式接口,即只能包含.个抽象方法,否则就会编译出错。
    注解类型分析:@FunctionalInterface 可适合用于注解类型声明,保留时长为运行时。

3. 元注解

JDK除了在javallang提供了上述内建注解外,还在java.lang。annotation包下提供了6个Meta Annotation(元 Annotataion),其中有5个元Annotation都用于修饰其他的Annotation定 义。其中@Repeatable专门用户定叉Java 8新增的可重复注解。

我们先介绍其中4个常用的修饰其他Annotation的元Annotation。在此之前,我们先了解如何自定义Annotation。

当一个接口直接继承java.lang.annotation.Annotation接口时,仍是接口,而并非注解。要想自定义注解类型,只能通过@interface关键字的方式,其实通过该方式会隐含地继承Annotation接口。

  • @Documented
  • @Inherited
  • @Retention
  • @Target

三、自定义注解Annotation

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface JavascriptInterface {
}

自定义注解中定义成员变量的规则:
其定义是以无形参的方法形式来声明的。即:
注解方法不带参数,比如name(),website ();
注解方法返回值类型:基本类型、Stringr、Enums、Annotation以及前面这些类型的数组类型;
注解方法可有默认值,比如default "hello",默认website=”hello”;

当然注解中也可以不存在成员变量,在使用解析注解进行操作时,仅以是否包含该注解来进行操作。当注解中有成员变量时,若没有默认值,需要在使用注解时,指定成员变量的值。

四、注解解析

通过反射技术来解析自定义注解,获取Annotation详细信息;AnnotatedElement接口获取注解信息;

相关文章

  • 菜鸟学服务端技术----Spirng基础

    注解 Java基础加强总结(一)——注解(Annotation) java中的注解是如何工作的? java 注解 ...

  • 自定义注解

    java annotation基础 java注解分为标准注解和元注解。 标准注解是java为我们提供的预定义的注解...

  • Java注解的使用

    Java注解的使用 参考 廖雪峰java教程 使用注解 什么是注解(Annotation)?注解是放在Java源码...

  • Java原生注解和Spring注解的说明

    注解 java 原生注解 Spring 中的注解 一 Java原生注解 Java注解是在JDK1.5以后引入的新特...

  • Java 注解

    JAVA注解 Java 自带注解(系统注解) @Override 表示重写注解 @Deprecated 表示过时的...

  • 1.8 Java 注解annotation

    1.1 注解声明 Java注解Annotation,有声明注解和元注解 元注解:Java提供的元注解,所谓元注解就...

  • Java注解学习总结(脑图)

    注解的提取测试:定义注解: 测试注解提取: 参考:《Java编程思想》java注解

  • Java注解

    Java注解(Annotation)详解(一)——概述及JDK自带注解 Java注解(Annotation)详解(...

  • JAVA-注解 Annotation

    JAVA-注解 Annotation sschrodinger 2018/6/4 基本 注解 Java 注解用于为...

  • Java注解简介篇

    摘要 本文详细介绍java注解是什么,如何声明java注解,如何解析java注解。最后介绍JDK提供的几大基本注解...

网友评论

      本文标题:JAVA注解

      本文链接:https://www.haomeiwen.com/subject/jiqbjrtx.html