`

Java Annotation

 
阅读更多

Reference URL:

http://www.bluedash.net/spaces/Web%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B2%EF%BC%8DJava%20Annotation

 

1. Annotation是什么? 

如果您使用Java编写过一些程序,那么您可能已经接触过这一特性了。比如JavaDoc语法中使用的@return,@param这些就是Java标记。又比如说,大家经常用到的用来抑制Java编译器警告信息的@SuppressWarning标记,以及标识某方法或某类过期的@Deprecated标记。从Java 1.5版本开始,用户可以自已制作各种标记。 Spring Framework已经预定义了很多标记, 比如@Autowired.

 

核心提示:

Java Annotation(中文翻译成"标记"或"注解"),

A. 使用位置

     是放置在Package, Class, Interface, Class field, Class method, Method parameter前的一个带@的字符串。

B. 本质:

     它也被称为元数据, 为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻(编译前、编译时、运行时)非常方便地使用这些数据。

C. 用途:

     编写Annotation处理器。如果没有用来读取注解的工具,那Annotation也不会比注释更有用。使用Annotation的过程中,很重要的一个部分就是创建与使用Annotation处理器。Java SE5扩展了反射机制的API,以帮助程序员构造这类工具。比如Spring Framework肯定利用了反射机制编写了对@Autowired的处理代码,达到Auto wired的目的。(不同的Annotation有不同的目的,其处理器代码实现也千差万别,因此,一般没有必要去深究处理器代码实现,了解特定Annotation的用法就可以了)

 D. 好处:

     最大的好处就是这一特性使得代码之间的耦合度变得非常之低

 

2. 如何自定义Annotation类

    定义Annotation类有点类似于定义Java接口类interface,但和一般的接口类比起来,interface前面多了一个@

 

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

@Target(ElementType.TYPE)  
@Retention(RetentionPolicy.RUNTIME)  

public @interface MyAnnotation {  
     String value();  
} 

 

    i. Annotation类的属性

       String value()这个写法是@interface中一个比较独特的地方。它实际上定义的不并是标记类的一个方法,而是标记类的一个属性

 

    ii. Annotation类的@Target标记

       指定此标记的作用域:

         TYPE - 说明此标记可以用在Class、Interface、Enum、Annotation之上

         FIELD - 可用于类的属性之上

         METHOD - 用于函数

         PARAMETER - 用于函数的参数

         CONSTRUCTOR - 用于构造方法

         PACKAGE - 用于包

 

    iii. Annotation类的@Retention标记

        指定我们所制作的标记的生命周期:

        SOURCE - 代表此标记的仅在代码编译前存活。比如@Deprecated,仅在编译前提供一些提示信息。在编译时,这些标记并不会编译到class文件中 ( Annotation is discarded by the compiler )

        CLASS - 这类标记会编译到class文件中,但不会成为程序的一部分,也不可以通过代码在运行时调用到 (Annotation is stored in the class file, but ignored by the VM)

        RUNTIME - 这类标记将成为代码的一部分,并会在实际运行时起到作用 (Annotation is stored in the class file and read by the VM)

 

分享到:
评论

相关推荐

    JDK5.0 Java Annotation 介绍(ppt)

    Java Annotation 是 JDK5.0 引入的一种元数据机制,它允许程序员在代码中嵌入额外的信息,这些信息可以被编译器、构建工具或运行时系统用来执行特定的任务。Annotation 提供了一种安全、灵活的方式来描述代码的属性...

    java annotation demo

    Java 注解(Annotation)是Java语言提供的一种元编程机制,它允许程序员在源代码的各个元素(如类、方法、变量等)上添加信息。这些信息可以被编译器或运行时系统用来验证代码、执行特定操作或者提供额外的运行时...

    JAVA Annotation学习

    通过上述示例中的JavaAnnotation压缩包,你可能包含了注解的使用示例、源码以及相关的博客文章。源码可以帮助你理解注解的实际应用,而博客文章可能深入解释了注解的工作原理和最佳实践。学习这些材料,将有助于你...

    Java Annotation手册

    《Java Annotation手册》 在Java编程语言中,注解(Annotation)是一种元数据,它提供了在编译时或运行时处理代码的一种方式。通过注解,开发者可以向编译器或JVM提供有关代码的附加信息,而这些信息通常不直接影响...

    Java Annotation注解.doc

    Java Annotation,也称为注解,是Java编程语言中的一种元数据机制,用于向编译器、JVM或工具提供有关代码的附加信息。这些信息不直接影响代码的执行,但可以被编译器或运行时环境用来执行特定的操作,如代码分析、...

    Java Annotation注解技术

    Java Annotation注解技术是自Java SE 5.0版本引入的一种元编程机制,它允许程序员在源代码的各个层面(如类、方法、变量等)添加元数据,以供编译器、JVM或第三方工具在编译时或运行时进行处理。Annotation简化了...

    Java annotation (JDK5)

    Java的`javax.annotation.processing.Processor`接口定义了注解处理器的规范。 5. 使用注解 注解可以应用于类、方法、字段、参数、构造函数、包等不同级别。例如: ```java @MyAnnotation("Hello, World!") ...

    JavaAnnotation必须掌握的特性Java开发Ja

    Java注解(Java Annotation)是Java编程语言中的一个重要特性,它提供了一种元数据的方式,允许程序员在代码中嵌入额外的信息。这些信息可以被编译器、JVM或者特定工具在编译时或运行时读取,用于执行各种验证、生成...

    JavaAnnotation手册.pdf

    【Java Annotation手册】 Java Annotation是Java编程语言中的一个重要特性,它允许程序员在代码中嵌入元数据,这些元数据不直接影响程序的运行,但可以被编译器、工具或运行时环境用来验证代码、生成文档、实现依赖...

    JavaAnnotation手册[借鉴].pdf

    Java Annotation是Java编程语言中的一种特性,用于向编译器、虚拟机或其他工具提供元数据。在《Java Annotation入门》的基础上,这篇手册深入探讨了Annotation的定义、使用和功能。 一、Annotation的本质 ...

    JavaAnnotation实例.docx

    【Java Annotation 实例】 Java Annotation 是一种元数据,它允许我们在源代码中嵌入信息,这些信息可以被编译器或运行时环境用于处理代码。Annotation 不是代码本身,但可以影响代码的行为或提供编译时和运行时的...

    重难点之JavaAnnotation手册.pdf

    在《Java Annotation入门》之后的这篇《重难点之JavaAnnotation手册》中,作者深入探讨了Annotation的概念、定义以及其在Java开发中的应用。 一、Annotation是什么? Annotation是一种在代码中添加的特殊注解,用于...

    javaAnnotation.pdf

    Java Annotation 是一种在 J2SE 5.0 版本中引入的重要特性,它遵循JSR-175规范,允许程序员在代码中嵌入元数据。元数据是关于数据的数据,可以用来创建文档、追踪代码依赖关系以及执行编译时检查。在Java中,注释...

    Java Annotation(Java 注解)

    如果你想知道java annotation是什么?你可以看看

    Java注解学习1-Java Annotation认知(包括框架图、详细介绍、示例说明)

    Java 注解(Annotation)是自 JDK 5.0 版本引入的一种元数据机制,用于向编译器、开发工具和运行时系统提供有关代码的附加信息。它们并不直接影响程序的执行,但可以用于代码分析、编译时验证或者运行时处理。本文将...

Global site tag (gtag.js) - Google Analytics