`

Creating Annotations 注解之创建

    博客分类:
  • Java
 
阅读更多

1.11.1Creating Annotations

Annotation is created based on the interface.

  1. Adding '@' before the keyword interface to declare an annotation type.
  2. All annotations consist only method declarations.
  3. These methods act much like fields.

注解基于接口被创建.

在关键字 interface 前加'@'来声明一个annotation类型.

注解只包含方法声明.

这些方法的行为类似字段.

// A simple annotation type.
@interface MyAnnotation {
  String stringValue();
  int intValue();
}

 1.11.2 Define new annotation type

  1. All annotation types automatically extend the Annotation interface.
  2. Annotation is a super-interface of all annotations.
  3. It overrides hashCode( ), equals( ), and toString() defined by Object.
  4. It defines annotationType( ), which returns a Class object that represents the invoking annotation.
  5. When you apply an annotation, you give values to its members.
// A simple annotation type.
@interface MyAnnotation {
  String stringValue();

  int intValue();
}

public class MainClass {
  // Annotate a method.
  @MyAnnotation(stringValue = "Annotation Example", intValue = 100)
  public static void myMethod() {
  }

}

 

1.11.3 Specifying a Retention Policy 指定  保留方针

 

A retention policy determines at what point an annotation is discarded.

 

  1. SOURCE: annotation retained only in the source file and is discarded during compilation.
  2. CLASS: annotation stored in the .class file during compilation, not available in the run time.
  3. RUNTIME: annotation stored in the .class file and available in the run time.
  4. They are defined java.lang.annotation.RetentionPolicy enumeration.

A retention policy is specified using Java's built-in annotations: @Retention.

 

@Retention(retention-policy)

the default policy is CLASS.

 

 

MyAnnotation uses @Retention to specify the RUNTIME retention policy.

 

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

// A simple annotation type.
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation {
  String stringValue();

  int intValue();
}

public class MainClass {
  // Annotate a method.
  @MyAnnotation(stringValue = "Annotation Example", intValue = 100)
  public static void myMethod() {
  }

}

 1.11.4 default values in an annotation 注解中的默认值

 

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.Method;

@Retention(RetentionPolicy.RUNTIME)
@interface MyAnno {
  String str() default "Testing";

  int val() default 9000;
}

public  class Meta3 {
  @MyAnno()
  public static void myMeth() {
    Meta3 ob = new Meta3();

    try {
      Class c = ob.getClass();

      Method m = c.getMethod("myMeth");

      MyAnno anno = m.getAnnotation(MyAnno.class);

      System.out.println(anno.str() + " " + anno.val());
    } catch (NoSuchMethodException exc) {
      System.out.println("Method Not Found.");
    }
  }

  public static void main(String args[]) {
    myMeth();
  }
}

 

分享到:
评论

相关推荐

    Android annotations 注解 使用

    在Android开发中,注解(Annotations)是一种强大的工具,它能帮助我们简化代码,提高代码的可读性和可维护性。Android Annotations库是专门为Android应用设计的一个注解处理框架,它提供了一系列预定义的注解,可以...

    Android annotations注解框架 源码

    功能:完全注解框架,一切皆为注解:声明控件,绑定控件,设置监听,setcontentview,长按事件,异步线程,全部通过注解实现。 优点:完全的注解,使开发起来更加便利,程序员写的代码也更少。 缺点:文档是全英文...

    java-annotations,基于jvm的语言的注释。.zip

    自定义注解则允许开发人员创建自己的元数据,例如`@Autowired`在Spring框架中用于自动装配bean,或者`@Entity`在JPA中标识数据库实体。 在实际开发中,注解可以极大地简化代码,提高生产力,减少样板代码,并为工具...

    annotations-13.0-API文档-中文版.zip

    赠送jar包:annotations-13.0.jar; 赠送原API文档:annotations-13.0-javadoc.jar; 赠送源代码:annotations-13.0-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    jackson-annotations, 对于Jackson数据处理器,核心注解( 仅依赖于.zip

    jackson-annotations, 对于Jackson数据处理器,核心注解( 仅依赖于 概述这个项目包含了Jackson数据处理器的通用注释,用于值和处理程序类型。 惟一不包括的注释是需要依赖于 Databind包的注释。项目包含版本 2.0和上...

    最新annotations-25.0.0JAR包下载 注解JAR包下载 注释JAR包下载

    最新注解JAR包. 找了N久才找到的.

    annotations-api.jar注解

    annotations-api.jar注解

    annotations-23.0.0-API文档-中文版.zip

    赠送jar包:annotations-23.0.0.jar; 赠送原API文档:annotations-23.0.0-javadoc.jar; 赠送源代码:annotations-23.0.0-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    swagger-annotations-2.1.2-API文档-中文版.zip

    赠送jar包:swagger-annotations-2.1.2.jar; 赠送原API文档:swagger-annotations-2.1.2-javadoc.jar; 赠送源代码:swagger-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    jsoup-annotations是Jsoup注解的POJO

    2. **创建注解的Pojo类**:接着,定义一个Java类,并使用JSoup-Annotations的注解来标注字段。比如,如果你要解析一个包含标题、作者和内容的博客文章,可以创建如下类: ```java public class BlogPost { @Id(...

    hibernate-annotations-3.4.0.GA

    1. 创建实体类:利用@Entity、@Table、@Id等注解创建符合数据库结构的Java实体类。 2. 数据库操作:使用Session的save()、update()、delete()方法进行CRUD操作,或者使用Criteria、HQL等查询语言进行复杂查询。 3. ...

    swagger-annotations-1.6.2-API文档-中文版.zip

    赠送jar包:swagger-annotations-1.6.2.jar; 赠送原API文档:swagger-annotations-1.6.2-javadoc.jar; 赠送源代码:swagger-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    C ++注释C++ Annotations

    在探讨"C ++注释C++ Annotations"这一主题之前,我们首先需要明确几个基本概念:C++作为一种高级编程语言,它不仅继承了C语言的强大功能,还在此基础上进行了大量的改进和扩展,使其成为一种更为强大、灵活且易于...

    swagger-annotations-1.5.20-API文档-中文版.zip

    赠送jar包:swagger-annotations-1.5.20.jar; 赠送原API文档:swagger-annotations-1.5.20-javadoc.jar; 赠送源代码:swagger-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    annotations

    Annotations(注解)是一种元数据,它提供了在不改变程序行为的同时,向编译器或JVM提供额外信息的方式。这些信息可以用于代码分析、编译时检查、运行时处理等目的。 在描述中提到的"annotations压缩文件"很可能是...

    audience-annotations-0.5.0-API文档-中英对照版.zip

    赠送jar包:audience-annotations-0.5.0.jar; 赠送原API文档:audience-annotations-0.5.0-javadoc.jar...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    swagger-annotations-1.5.24-API文档-中文版.zip

    赠送jar包:swagger-annotations-1.5.24.jar; 赠送原API文档:swagger-annotations-1.5.24-javadoc.jar; 赠送源代码:swagger-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    jackson-annotations-2.9.0-API文档-中文版.zip

    赠送jar包:jackson-annotations-2.9.0.jar; 赠送原API文档:jackson-annotations-2.9.0-javadoc.jar; 赠送源代码:jackson-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    Hibernate Annotations 中文文档

    1. 创建一个注解项目 1.1. 系统需求 1.2. 系统配置 2. 实体Bean 2.1. 简介 2.2. 用EJB3注解进行映射 2.2.1. 声明实体bean 2.2.1.1. 定义表(Table) 2.2.1.2. 乐观锁定版本控制 2.2.2. 映射简单属性 2.2.2.1. ...

    j2objc-annotations-1.3-API文档-中文版.zip

    赠送jar包:j2objc-annotations-1.3.jar; 赠送原API文档:j2objc-annotations-1.3-javadoc.jar; 赠送源代码:j2objc-annotations-1.3-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

Global site tag (gtag.js) - Google Analytics