`
walklen
  • 浏览: 25436 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

注解-Annotation

阅读更多

 

1.注解定义

注解也称作元数据,它为我们在源码中添加信息提供了一种形式化的方法,供我们在需要的时候读取有用的信息

2.元注解

   元注解就是JDK已经定义好的注解的注解,   Jdk定义的4个标准元注解:

 

 

定义

取值

 

@Target

说明了Annotation所修饰的对象范围

ElementType

 1.CONSTRUCTOR:用于描述构造器

 2.FIELD:用于描述域

 3.LOCAL_VARIABLE:用于描述局部变量

 4.METHOD:用于描述方法

 5.PACKAGE:用于描述包

 6.PARAMETER:用于描述参数

 7.TYPE:用于描述类、接口(包括注解类型) enum声明

@Target(ElementType.TYPE)

public @interface Table {

  public String tableName() default "className";

}

 

@Retention

定义了该Annotation被保留的时间长短

RetentionPoicy

 1.SOURCE:在源文件中有效(即源文件保留)

 2.CLASS:class文件中有效(即class保留)

 3.RUNTIME:在运行时有效(即运行时保留)

 

@Documented

用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化

是一个标记注解,没有成员

 

@Inherited

阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类

是一个标记注解,没有成员

 

 

 

 

3.自定义注解

@interface用来声明一个注解,其中的每一个方法实际上是声明了一个配置参数

法的名称就是参数的名称

返回值类型就是参数的类型(返回值类型只能是基本类型、ClassStringenum

可以通过default来声明参数的默认值。

 

例子一:(单个参数的注解,一般用名称为value,使用的时候不用nama=XXX的方式

@Target(ElementType.FIELD)

@Retention(RetentionPolicy.RUNTIME)

@Documentedpublic @interface FruitName {

    String value() default "";

}

 

例子二:

@Target(ElementType.FIELD)

@Retention(RetentionPolicy.RUNTIME)

@Documented

public @interface FruitColor {

  public enum Color{ BULE,RED,GREEN};

           Color fruitColor() default Color.GREEN;

}

 

 

4.通过反射获取注解信息

  (注意,只有RetentionPoicy=RUNTIME的时候才能通过反射获取到

//判断该方法是否包含MyAnnotation注解

method.isAnnotationPresent(MyAnnotation.class)

//获取该方法的MyAnnotation注解实例

MyAnnotation myAnnotation = method.getAnnotation(MyAnnotation.class);

//获取myAnnotation属性值

String[] value1 = myAnnotation.value1();

//获取方法上的所有注解

Annotation[] annotations = method.getAnnotations();

 

分享到:
评论

相关推荐

    mybatis-plus-annotation-3.5.3.2.jar

    mybatis-plus-annotation.jar MP 注解 jar 包 mybatis-plus 的注解 jar 包,包含了 mybatis-plus 注解功能 各个版本

    ssh全注解-annotation

    根据给定的信息,本文将对“SSH全注解”这一主题进行深入解析,重点探讨如何在Struts2、Hibernate和Spring框架中运用全注解方式实现无XML配置的开发模式。 ### SSH全注解概念 SSH是Struts2、Spring和Hibernate三个...

    mybatis-plus-annotation-3.5.3.jar

    mybatis-plus-annotation.jar MP 注解 jar 包 mybatis-plus 的注解 jar 包,包含了 mybatis-plus 注解功能 各个版本

    point-cloud-annotation-tool win10解压直接运行

    "point-cloud-annotation-tool" 提供了在Windows 10操作系统上直接进行点云注解的能力,无需复杂的安装过程,只需解压即可运行。 1. 点云标注工具介绍: 点云标注工具是专门用于标记和分类点云数据的软件,它可以...

    mybatis-plus-annotation-3.5.0.jar

    mybatis-plus-annotation.jar MP 注解 jar 包 mybatis-plus 的注解 jar 包,包含了 mybatis-plus 注解功能 各个版本

    前端项目-chartjs-plugin-annotation.zip

    5. **Label**(文本标签):在图表上添加文字注解。 每个注释类型都有各自的配置选项,例如颜色、宽度、透明度、位置等,可以根据需要进行自定义。 #### 高级用法 除了基本的注释类型,`chartjs-plugin-...

    hibernate-annotation-helloword

    **hibernate-annotation-helloworld** 是一个基于Hibernate框架,使用注解方式实现的Hello World示例项目。在Java世界中,Hibernate是一个流行的持久层框架,它极大地简化了数据库操作,尤其是在对象关系映射(ORM)...

    spring-security-helloworld-annotation

    本文将深入探讨一个名为"spring-security-helloworld-annotation"的示例,该示例展示了如何使用注解来配置Spring Security。我们将从基本概念、核心组件到实际应用,全面解析Spring Security的注解使用。 1. **注解...

    mybatis-generator-core-chinese-annotation-1.3.5-master.zip

    在描述中提到的"mybatis-generator-core-chinese-annotation-1.3.5-master.zip"是一个包含MBG中文注解版1.3.5版本的压缩包,旨在帮助开发者更方便地理解和使用这个工具。 MBG的核心功能在于根据数据库表自动生成...

    hibernate-annotation

    《深入理解Hibernate注解》 Hibernate作为Java领域中的一款强大持久化框架,极大地简化了数据库操作。而Hibernate注解则是其在ORM(对象关系映射)领域的进一步进化,它允许开发者将元数据直接嵌入到Java类和属性的...

    Python库 | girder-large-image-annotation-1.7.2.dev22.tar.gz

    总结来说,“girder-large-image-annotation-1.7.2.dev22”是一个针对大型图像注解的强大工具,结合了Girder的管理和共享能力,为处理大图像数据提供了一种高效的解决方案。无论你是研究者、开发者还是数据科学家,...

    Python库 | girder-large-image-annotation-1.8.7.dev3.tar.gz

    今天我们将深入探讨一个特定的Python库——`girder-large-image-annotation`,它是一个强大的工具,专为大规模图像处理和注解而设计。 `girder-large-image-annotation`库是基于`girder`框架的一个扩展,主要服务于...

    hibernate-annotation 所需要的jar包

    9. **测试与实践**: 提供的"Hibernate-Annotation-jar"文件包含了使用Hibernate进行Annotation编程所需的库文件。为了确保成功运行,开发者需要在项目中导入这些jar包,并配置相应的数据库连接和实体类,然后就可以...

    Hibernate-Annotation-3.4.0帮助文档

    《Hibernate-Annotation-3.4.0帮助文档》是一份详尽的指南,旨在帮助开发者理解和使用Hibernate ORM框架中的注解功能。Hibernate是Java领域中广泛使用的对象关系映射(ORM)工具,它极大地简化了数据库操作。在3.4.0...

    hibernate-Annotation.jar

    在Hibernate 3.x版本中,引入了Annotation注解,这是一种元数据的方式,可以替代XML配置文件来描述对象与数据库表之间的映射关系。 **Hibernate Annotation注解** 在Hibernate 3.x之前,对象到数据库的映射通常...

    mybatis-plus-annotation-3.5.3.1.jar

    mybatis-plus-annotation.jar MP 注解 jar 包 mybatis-plus 的注解 jar 包,包含了 mybatis-plus 注解功能 各个版本

    hibernate-validator-annotation-processor-5.1.0.CR1.zip

    "Hibernate Validator Annotation Processor 5.1.0.CR1"是该框架的一个特定版本,主要关注于编译时注解处理器。这个版本的发布可能包含了性能优化、新特性和bug修复。 【描述】"generate-default-impl-maven-plugin...

    chartjs-plugin-annotation:Chart.js的注释插件

    chartjs-plugin-annotation.js Chart.js> = 3.0.0的注释插件 该插件需要注册。 它不能用作嵌入式插件。 对于Chart.js 2.4.0至2.9.x支持,请使用 该插件在图表区域上绘制线,框,点和椭圆。 注释适用于使用线性,...

    SSH2-Annotation.rar_annotation ssh2_ssh2_ssh2 annotation

    在这个项目中,SSH2被进一步优化,引入了注解(Annotation)的方式,使得配置过程更为简洁,提高了开发效率。下面将详细介绍这个项目的核心知识点。 1. **Spring框架**:Spring是Java应用开发的核心框架,提供依赖...

    Python库 | reveal-user-annotation-0.2.2.tar.gz

    在给定的标题“Python库 | reveal-user-annotation-0.2.2.tar.gz”中,我们可以推断这是一个针对Python的库,名为“reveal-user-annotation”。这个库的版本是0.2.2,它已经被打包成tar.gz格式,这是一种常见的Linux...

Global site tag (gtag.js) - Google Analytics