`

JDK5.0新特性系列---9.注释功能Annotation

 
阅读更多

 

import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**关键技术
 * 1.Java常用的内置注释
 *     @Override放在方法的修饰符前,表示该方法覆盖了父类的同名同参数方法,如果该方法没有覆盖父 类的方法而使用了该注释,则编译器会报错
 *     @Deprecated放在变量和方法的访问修饰符前,表示该变量或者方法已经不推荐使用,通常是因为它很危险或者存在更好的选择。
 * 2.可以自定义注释类型,与enum定义枚举类型一样,使用@interface定义注释类型
 * 3. 能在自定义的注释中定义其它类、属性和方法。定义属性时,以属性名为方法名,以属性类型为方法的返回值类型,方法后接default关键字表示属性的默认值。如"String name();"表示该注释类型具有name属性,类型为String;而"int age() default 20;"表示该注释具有age属性,类型为int,默认值为20.
 * 4. 可以在自定义的注释类型的声明中添加注释,即注释的元注释。Java有2个常用的内置元注释:
 *    @Target指定Annotation类型可以应用的程序元素,程序元素的类型由java.lang.annotation.ElementType枚举类定义。如ElementType.METHOD表示该注释类型只能用于方法声明中。
 *    @Retention和Java编译器处理Annotation类型的方式有关,这些方式由java.lang.annotation.RetentionPolicy枚举值定义。如RetentionPolicy.RUNTIME表示该注释类型 将被编译成class文件
 *    @Document指明需要在Javadoc中包含注释(默认是不包含的)
 */
public class AnnotationData {
                   @Deprecated private String name;
                   public AnnotationData(String name){
                                      this.name = name;
                   }
                  
                   //方法声明中使用了内置的@Override元数据,表示该方法覆盖了父类的同名同参数方法
                   //如果父类不存在该方法,则编译不会通过
                   @Override public String toString(){
                                      return super.toString() + this.name;
                   }
                   @Override public int hashCode(){
                                      return toString().hashCode();
                   }
                  
                   /**方法中使用了内置的@Deprecated元数据,表示该方法已经不被推荐使用了*/
                   @Deprecated public String getName(){
                                      return name;
                   }
                   public String getAnnotationDataName(){
                                      return this.name;
                   }
 
                   //下面定义元数据类型
                   //使用@interface声明Annotation类型
                   public @interface MyAnnotation{
                                      //在元数据中可以定义其它类
                                      public enum Severity{
                                                         CRITICAL,IMPORTANT,TRIVIAL,DOCUMENT
                                      };
                                      //定义数据类型不需要定义getter和setter方法
                                      //只需要定义一个以成员名称命名的方法,并指定返回类型为需要的数据类型
                                      //default关键字为Annotation类型的成员设置默认值
                                      Severity severity() default Severity.IMPORTANT;
                                      String item();
                                      String assignedTo();
                                      String dateAssigned();
                   }
                   //使用自定义的Annotation类型,在使用时,
                   //如果Annotation类型在其他的包下,需要与使用类一样,import它
                   @MyAnnotation(severity = MyAnnotation.Severity.CRITICAL,
                                                           item = "Must finish this method carefully",
                                                           assignedTo = "Programmer A",
                                                           dateAssigned = "2006/09/10")
                   public void doFunction(){
                                      //do something
                   }
                  
                   //下面再定义一个Annotation类型,使用了元数据的元数据
                   //@Retention(RetentionPolicy.RUNNTIME)这个meta-annotation
                   //表示了此类型的annotation将编译成class文件,而且还能被虚拟机读取
                   //而@Target(ElementType.METHOD)表示此类型的annotation只能用于修饰方法声明
                   @Retention(RetentionPolicy.RUNTIME)
                   @Target(ElementType.METHOD)
                   public @interface MyNewAnnotation{
                                     
                   }
}
分享到:
评论

相关推荐

    maven-annotation-plugin:一个Maven插件,可在编译时处理来自jdk6及更高版本的注释

    该插件有助于从Maven使用JDK8提供的集成在Java编译器中的新注释处理 该插件是Maven apt插件的“ alter ego” 文献资料 相关插件 插入 信息 Jboss的eclipse插件 eclipse插件 开发注释处理器 发行版 日期 版本 信息 ...

    jdk1.5 tiger java5 新特性

    总的来说,JDK 1.5(Java 5.0)的新特性极大地提高了Java的生产力和代码质量。从泛型到增强的for循环,再到注解和枚举,这些改进都让Java开发者能够编写出更安全、更易于维护的代码。在实际开发中,理解并充分利用...

    105-Java核心编程14.docx

    在Java编程中,注解(Annotation)是一种强大的工具,自JDK 5.0引入以来,它极大地简化了代码管理和元数据的处理。注解不同于注释,它是代码的一部分,可以在编译、运行时被解析和执行特定的处理。本文将深入探讨...

    吴天雄-Java注解及动态性详解.doc

    Java注解,也称为Annotation,是自JDK 5.0版本起引入的一种元数据机制,它为程序提供了额外的信息,这些信息可以在编译时或运行时被解析和使用。元数据是描述数据的数据,注解就是一种特殊的数据类型,可以用于修饰...

    Java JDK实例宝典

    全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...

    java Annotation 注解

    Java Annotation,也称为注解,是Java编程语言中的一种元数据机制,自JDK 5.0开始引入。注解提供了在源代码中嵌入元数据的能力,这些元数据可以被编译器、构建工具或者运行时环境用来处理代码。它们在代码中看起来...

    Java基础加强1.pdf

    这里我们将深入探讨Eclipse IDE的使用,JDK 5.0引入的新特性,以及如何有效地利用它们进行更高效的编程。 Eclipse是一款强大的集成开发环境(IDE),广泛用于Java EE开发。它提供了诸如代码自动完成、错误检测、...

    Java基础加强Java基础加强

    本文主要探讨了Java的基础知识以及在JDK 5.0中引入的一些新特性,旨在帮助开发者强化Java编程技能。 首先,Eclipse是Java开发中常用的集成开发环境(IDE),它提供了丰富的功能来支持开发过程。工作空间(workspace...

    java高级.docx

    在Java编程语言中,标注(Annotation)是一项重要的特性,自JDK 5.0引入以来,极大地丰富了Java的元数据处理能力。与传统的注释不同,标注不仅用于提供描述性信息,更重要的是它们能够被编译器或运行时环境所识别并...

    全面解析Java注解

     我们有必要对JDK 5.0新增的注解(Annotation)技术进行简单的学习,因为Spring 支持@AspectJ,而@AspectJ本身是基于JDK 5.0的注解技术。所以学习JDK 5.0的注解知识有助于我们更好地理解和掌握Spring的AOP技术。 ...

    Annotation 入门介绍

    自Java 5.0版本起,Sun Microsystems(现Oracle)引入了一项新特性——Annotation(注解),这一功能旨在简化开发过程中的元数据管理,并提供了一种标准化的方式,在源代码中嵌入额外的信息。Annotation的引入,不仅...

    北京圣思园 Annotation pdf文档

    根据给定的文件信息,我们将介绍Java注解(Annotation)的相关知识点,包括其定义、使用方法、内建注解以及高级特性。 首先,我们来看看Java注解的由来。在Java 5.0版本发布之前,程序员通常需要使用注释(Comments...

    java高级特性,涵盖了多种java常用的一些例子

    Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。Java标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节...

    14、JavaSE:注解和反射.pdf

    Java注解(Annotation)是自JDK 5.0版本起引入的一种元数据,它为程序提供了附加信息,但并不直接影响程序的运行。注解的主要目的是为了帮助编译器、构建工具、IDE或其他软件工具更好地理解和处理代码。注解与普通的...

    java注解详解[文].pdf

    Java 注解(Annotation)是 JDK 5.0 及以后版本引入的一个特性。它是一个新的类型,与接口类似,位于同一个层次,称为 Java 的一个类型(TYPE)。注解可以声明在包、类、字段、方法、局部变量、方法参数等的前面,...

    java注解元数据

    定义:注解(Annotation),也叫元数据。...它是JDK5.0及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

    java注解详解,十分有用。

    Java 注解(Annotation)是 JDK 5.0 及以后版本引入的一个特性,它是一个新的类型,与类、接口、枚举是在同一个层次。注解可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明、注释...

    Java版水果管理系统源码-huihe_2020summer:2020假期spring学习,vue留给你们了,有兴趣自己可以看官方文档,中文很

    JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。 内置的注解 作用在代码的注解是 @Override - 检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,...

    注解与反射高效开发法.pdf

    Java注解在JDK 5.0版本被引入,它允许开发者为程序元素(如类、方法、变量等)添加注释信息,而这些信息将被编译器或者其他工具使用。注解通过使用@interface关键字来声明。元注解是用于注解注解的注解,常见的元...

    Java枚举类的使用与注解

    Java枚举类是Java语言中一个非常重要的特性,它用于创建固定的、有限数量的类实例。枚举类在很多场景下被用作定义一组相关的常量,提供了比使用静态final变量更安全、更灵活的方式。 一、枚举类的理解: 1. 枚举类...

Global site tag (gtag.js) - Google Analytics