1.11.1Creating Annotations Annotation is created based on the interface. |
|
注解基于接口被创建. 在关键字 interface 前加'@'来声明一个annotation类型. 注解只包含方法声明. 这些方法的行为类似字段. |
// A simple annotation type. @interface MyAnnotation { String stringValue(); int intValue(); }
1.11.2 Define new annotation type
- All annotation types automatically extend the Annotation interface.
- Annotation is a super-interface of all annotations.
- It overrides hashCode( ), equals( ), and toString() defined by Object.
- It defines annotationType( ), which returns a Class object that represents the invoking annotation.
- 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.
- SOURCE: annotation retained only in the source file and is discarded during compilation.
- CLASS: annotation stored in the .class file during compilation, not available in the run time.
- RUNTIME: annotation stored in the .class file and available in the run time.
- 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应用设计的一个注解处理框架,它提供了一系列预定义的注解,可以...
功能:完全注解框架,一切皆为注解:声明控件,绑定控件,设置监听,setcontentview,长按事件,异步线程,全部通过注解实现。 优点:完全的注解,使开发起来更加便利,程序员写的代码也更少。 缺点:文档是全英文...
自定义注解则允许开发人员创建自己的元数据,例如`@Autowired`在Spring框架中用于自动装配bean,或者`@Entity`在JPA中标识数据库实体。 在实际开发中,注解可以极大地简化代码,提高生产力,减少样板代码,并为工具...
赠送jar包:annotations-13.0.jar; 赠送原API文档:annotations-13.0-javadoc.jar; 赠送源代码:annotations-13.0-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
jackson-annotations, 对于Jackson数据处理器,核心注解( 仅依赖于 概述这个项目包含了Jackson数据处理器的通用注释,用于值和处理程序类型。 惟一不包括的注释是需要依赖于 Databind包的注释。项目包含版本 2.0和上...
最新注解JAR包. 找了N久才找到的.
annotations-api.jar注解
赠送jar包:annotations-23.0.0.jar; 赠送原API文档:annotations-23.0.0-javadoc.jar; 赠送源代码:annotations-23.0.0-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:swagger-annotations-2.1.2.jar; 赠送原API文档:swagger-annotations-2.1.2-javadoc.jar; 赠送源代码:swagger-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
2. **创建注解的Pojo类**:接着,定义一个Java类,并使用JSoup-Annotations的注解来标注字段。比如,如果你要解析一个包含标题、作者和内容的博客文章,可以创建如下类: ```java public class BlogPost { @Id(...
1. 创建实体类:利用@Entity、@Table、@Id等注解创建符合数据库结构的Java实体类。 2. 数据库操作:使用Session的save()、update()、delete()方法进行CRUD操作,或者使用Criteria、HQL等查询语言进行复杂查询。 3. ...
赠送jar包:swagger-annotations-1.6.2.jar; 赠送原API文档:swagger-annotations-1.6.2-javadoc.jar; 赠送源代码:swagger-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
在探讨"C ++注释C++ Annotations"这一主题之前,我们首先需要明确几个基本概念:C++作为一种高级编程语言,它不仅继承了C语言的强大功能,还在此基础上进行了大量的改进和扩展,使其成为一种更为强大、灵活且易于...
赠送jar包:swagger-annotations-1.5.20.jar; 赠送原API文档:swagger-annotations-1.5.20-javadoc.jar; 赠送源代码:swagger-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
Annotations(注解)是一种元数据,它提供了在不改变程序行为的同时,向编译器或JVM提供额外信息的方式。这些信息可以用于代码分析、编译时检查、运行时处理等目的。 在描述中提到的"annotations压缩文件"很可能是...
赠送jar包:audience-annotations-0.5.0.jar; 赠送原API文档:audience-annotations-0.5.0-javadoc.jar...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
赠送jar包:swagger-annotations-1.5.24.jar; 赠送原API文档:swagger-annotations-1.5.24-javadoc.jar; 赠送源代码:swagger-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:jackson-annotations-2.9.0.jar; 赠送原API文档:jackson-annotations-2.9.0-javadoc.jar; 赠送源代码:jackson-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
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. ...
赠送jar包:j2objc-annotations-1.3.jar; 赠送原API文档:j2objc-annotations-1.3-javadoc.jar; 赠送源代码:j2objc-annotations-1.3-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。