java注解

简介:
  1. 注解是一种标记,我们可以对拥有这种标记的元素进行处理

  2. Annotation接口

    wKiom1Sbjbrwl_k7AAEACQZbFbM775.jpg

    所有注解类型都要继承的一个公共接口。手动继承这个接口并不会定义一个注解类型。这个接口本身并不是用来定义注解类型的。

    当我们使用@interface自定义注解时,隐含的继承了这个接口。

  3. java类型

    java有四种类型:类(class)、接口(interface)、注解(@interface)、枚举(enum)

4.  元注解

    注解的注解称为元注解。元注解有四种。

wKiom1Sbj8yzPiGiAAIBhVrDrW0782.jpg

Target指定注解用在什么地方

Retention指定注解被保留多久

Inherited指定注解是否可以被继承

Documented指定注解是否被包含到javadoc中


Target有一个ElementType类型的数组value

wKioL1SbkkTQQM2gAACbYvegIEg417.jpg

    ElementType中定义的常量

    wKiom1SbkfiyEoRRAAITVxfCVGM276.jpg


    TYPE表示注解只能加在类、接口(包括注解)、枚举上

    METHOD表示注解只能加在方法上

    。。。

    

    Retention有一个RetentionPolicy类型的元素value。

    下面是RetentionPolicy中定义的枚举常量

wKioL1SblDPg17jXAAG-FGkAKfw085.jpg

默认的RetentionPolicy是CLASS。


5. 自定义注解

    wKioL1Sbl6Hxv_2yAADy2GE7gaU942.jpg

    

    wKioL1Sb9j-AKhINAAA_9j05CNE507.jpg


    wKioL1Sb9x6Q2Jb0AADVxM-hXuA778.jpg

    输出结果为null。因为,此时Hello注解RetentionPolicy为CLASS,表示编译时有效,运行时无效。也就是相当于在运行时没有Hello注解。如果我们将其改为RUNTIME,则输出结果如下:

    wKioL1Sb-B7xlfEjAABB8qbkqJA278.jpg

    我们可以利用java反编译工具(Java Decompiler)查看一下Animal.class文件

    wKiom1Sb-MqDdLsBAABHicvKxVM542.jpg

    

    假设,我们已经将RetentionPolicy改为RUNTIME

    那么,下面的代码将输出结果

    wKioL1Sb-pPDocErAAA7JRtrZJ4097.jpg

    

    wKioL1Sb-tmz3TKeAAHJs80jXPM603.jpg


    之所以能输出结果是因为Hello注解被Inherited所修饰,表示注解可被继承。


6.  注解的作用

    注解给被注解的元素添加了额外的辅助信息,提供了一种统一处理的方式。如果没有外部解析工具对其加以解析和处理的话,它是不会对java源代码及class等产生任何影响,也不会影响程序的执行。   

7.  注解是给反射用的



本文转自    手不要乱摸      51CTO博客,原文链接:http://blog.51cto.com/5880861/1595797


相关文章
|
12天前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
82 43
Java学习十六—掌握注解:让编程更简单
|
4月前
|
Java Maven 编译器
Java编译器注解运行和自动生成代码问题之@AutoService工作问题如何解决
Java编译器注解运行和自动生成代码问题之@AutoService工作问题如何解决
187 1
|
30天前
|
JSON Java 数据库
java 常用注解大全、注解笔记
关于Java常用注解的大全和笔记,涵盖了实体类、JSON处理、HTTP请求映射等多个方面的注解使用。
33 0
java 常用注解大全、注解笔记
|
2月前
|
Arthas Java 测试技术
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
Java字节码文件、组成、详解、分析;常用工具,jclasslib插件、阿里arthas工具;如何定位线上问题;Java注解
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
|
18天前
|
IDE Java 编译器
java的反射与注解
java的反射与注解
14 0
|
2月前
|
Java 编译器 程序员
Java注解,元注解,自定义注解的使用
本文讲解了Java中注解的概念和作用,包括基本注解的用法(@Override, @Deprecated, @SuppressWarnings, @SafeVarargs, @FunctionalInterface),Java提供的元注解(@Retention, @Target, @Documented, @Inherited),以及如何自定义注解并通过反射获取注解信息。
Java注解,元注解,自定义注解的使用
|
27天前
|
XML Java 数据格式
Java-spring注解的作用
Java-spring注解的作用
20 0
|
2月前
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
|
2月前
|
Java 编译器 测试技术
|
2月前
|
Java
扫盲java基础-注解
扫盲java基础-注解