`
sassds
  • 浏览: 152788 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

注解(Annotation)

    博客分类:
  • java
阅读更多

注解(Annotation) 为我们在代码中天界信息提供了一种形式化的方法,是我们可以在稍后

某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据)。

 

    注解的语法比较简单,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种

注解,定义在java.lang包中。

      @Override  表示当前方法是覆盖父类的方法。

      @Deprecated  表示当前元素是不赞成使用的。

      @SuppressWarnings 表示关闭一些不当的编译器警告信息。

 

  下面是一个定义注解的实例

 

Java代码  收藏代码
  1. package Test_annotation;  
  2.   
  3. import java.lang.annotation.Documented;  
  4. import java.lang.annotation.Inherited;  
  5. import java.lang.annotation.Retention;  
  6. import java.lang.annotation.Target;  
  7. import java.lang.annotation.ElementType;  
  8. import java.lang.annotation.RetentionPolicy;  
  9.   
  10. /* 
  11.  * 元注解@Target,@Retention,@Documented,@Inherited 
  12.  *  
  13.  *     @Target 表示该注解用于什么地方,可能的 ElemenetType 参数包括: 
  14.  *         ElemenetType.CONSTRUCTOR 构造器声明 
  15.  *         ElemenetType.FIELD 域声明(包括 enum 实例) 
  16.  *         ElemenetType.LOCAL_VARIABLE 局部变量声明 
  17.  *         ElemenetType.METHOD 方法声明 
  18.  *         ElemenetType.PACKAGE 包声明 
  19.  *         ElemenetType.PARAMETER 参数声明 
  20.  *         ElemenetType.TYPE 类,接口(包括注解类型)或enum声明 
  21.  *          
  22.  *     @Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括: 
  23.  *         RetentionPolicy.SOURCE 注解将被编译器丢弃 
  24.  *         RetentionPolicy.CLASS 注解在class文件中可用,但会被VM丢弃 
  25.  *         RetentionPolicy.RUNTIME VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。 
  26.  *          
  27.  *     @Documented 将此注解包含在 javadoc 中 
  28.  *      
  29.  *     @Inherited 允许子类继承父类中的注解 
  30.  *    
  31.  */  
  32. @Target(ElementType.METHOD)  
  33. @Retention(RetentionPolicy.RUNTIME)  
  34. @Documented  
  35. @Inherited  
  36. /* 
  37.  * 定义注解 Test 
  38.  * 注解中含有两个元素 id 和 description 
  39.  * description 元素 有默认值 "no description" 
  40.  */  
  41. public @interface Test {  
  42.     public int id();  
  43.     public String description() default "no description";  
  44. }  
   

下面是一个使用注解 和 解析注解的实例

 

Java代码  收藏代码
  1. package Test_annotation;  
  2.   
  3. import java.lang.reflect.Method;  
  4.   
  5. public class Test_1 {  
  6.     /* 
  7.      * 被注解的三个方法 
  8.      */  
  9.     @Test(id = 1, description = "hello method_1")  
  10.     public void method_1() {  
  11.     }  
  12.   
  13.     @Test(id = 2)  
  14.     public void method_2() {  
  15.     }  
  16.   
  17.     @Test(id = 3, description = "last method")  
  18.     public void method_3() {  
  19.     }  
  20.   
  21.     /* 
  22.      * 解析注解,将Test_1类 所有被注解方法 的信息打印出来 
  23.      */  
  24.     public static void main(String[] args) {  
  25.         Method[] methods = Test_1.class.getDeclaredMethods();  
  26.         for (Method method : methods) {  
  27.             /* 
  28.              * 判断方法中是否有指定注解类型的注解 
  29.              */  
  30.             boolean hasAnnotation = method.isAnnotationPresent(Test.class);  
  31.             if (hasAnnotation) {  
  32.                 /* 
  33.                  * 根据注解类型返回方法的指定类型注解 
  34.                  */  
  35.                 Test annotation = method.getAnnotation(Test.class);  
  36.                 System.out.println("Test( method = " + method.getName()  
  37.                         + " , id = " + annotation.id() + " , description = "  
  38.                         + annotation.description() + " )");  
  39.             }  
  40.         }  
  41.     }  
  42.   
  43. }  
   
输出结果如下:

    Test( method = method_1 , id = 1 , description = hello method_1 )
    Test( method = method_2 , id = 2 , description = no description )
    Test( method = method_3 , id = 3 , description = last method )

分享到:
评论

相关推荐

    hibernate 注解 annotation 教程

    hibernate 注解 annotation 教程

    Java自定义注解Annotation的使用

    ### Java自定义注解Annotation的使用 #### 1. 前言 自从JDK 1.5引入了注解这一特性以来,它已经成为Java开发中的一个重要组成部分。注解最初是为了推动EJB 3.0的普及和发展而设计的,其目的是减少配置文件的使用,...

    ssh2+oracle 全注解 annotation lib包

    在这个特定的上下文中,"ssh2+oracle 全注解 annotation lib包" 指的是一个包含了支持SSH2连接和Oracle数据库操作的Java库,且这个库全面采用了Java的注解(Annotation)技术。 注解在Java编程中是一种元数据,它...

    Java 注解Annotation实例上手文档

    ### Java 注解Annotation实例上手文档 #### 一、引言与基础知识 Java注解(Annotation)自JDK 5.0引入以来,已经成为Java语言的重要特性之一,它为代码元数据提供了一种标准化的方式,使得编译器、工具和其他框架...

    注解Annotation实现原理与自定义注解例子.pdf

    注解Annotation实现原理与自定义注解例子 每当你创建描述符性质的类或者接口时,一旦其中包含重复性的工 作,就可以考虑使用注解来简化与自动化该过程。 Java提供了四种元注解,专门负责新注解的创建工作

    Java注解Annotation验证

    Java注解Annotation用起来很方便,也越来越流行,由于其简单、简练且易于使用等特点,很多开发工具都提供了注解功能,不好的地方就是代码入侵比较严重,所以使用的时候要有一定的选择性。 这篇文章将利用注解,来做...

    csh框架+cxf+spring+hibernate+mysql 注解 annotation xml json

    【标题】"csh框架+cxf+spring+hibernate+mysql 注解 annotation xml json" 提到的是一个基于Java技术栈的Web服务开发架构,涵盖了多个关键组件和技术,这些技术在现代企业级应用中广泛应用。以下是这些知识点的详细...

    java 注解annotation的使用以及反射如何获取注解

    Java注解(Annotation)是Java语言提供的一种元数据机制,用于向编译器或JVM提供额外的信息。这些信息可以用来验证代码、控制代码生成、配置应用等。注解是自Java 5版本引入的特性,它使得程序员可以在源代码中嵌入...

    自定义注解annotation及用法

    在Java编程语言中,注解(Annotation)是一种元数据,它提供了向编译器、工具或运行时系统提供额外信息的方式。自定义注解允许开发者创建自己的标记来满足特定需求,比如代码生成、验证、持久化等。本文将深入探讨...

    注解annotation的详细介绍

    注解(Annotation)是Java语言中的一个重要特性,自JDK5开始引入,它提供了一种安全的方式,使得程序员可以向源代码中添加元数据(metadata)。元数据是关于数据的数据,它并不改变程序运行方式,但可以被编译器、...

    java注解annotation.rar

    Java注解,也称为 Annotation,是Java编程语言中的一种元数据机制,用于向编译器、JVM(Java虚拟机)或工具提供有关代码的信息。这些信息可以用来进行编译时检查、运行时处理,或者作为配置信息。注解不是程序的一...

    详解Android注解 Annotation

    在Android开发中,注解(Annotation)是一种元数据,它提供了在代码中附加信息的方式,这些信息可以被编译器或者运行时环境用来执行特定的操作。注解在Java语言中引入,随后被广泛应用于Android系统,帮助开发者实现...

    基于注解Annotation的最新版SSH(Struts2.3.7+Hibernate4.1.9+Spring3.2.0)框架整合开发

    基于注解Annotation的最新版SSH(Struts2.3.7+Hibernate4.1.9+Spring3.2.0)整合开发,真正实现零配置。 最新版本Struts、Spring、Hibernate框架整合: struts-2.3.7 spring-framework-3.2.0.RELEASE hibernate-...

    struts2利用注解annotation实现文件下载

    ### Struts2 使用注解(Annotation)实现文件下载 在Web开发中,文件上传与下载是常见的需求之一。Struts2框架提供了强大的功能来支持这一需求。本文将详细介绍如何使用Struts2框架结合注解(Annotation)的方式...

    Android AOP注解Annotation详解(一)

    Android AOP 注解 Annotation 详解(一) Android AOP 注解 Annotation 是 Java 语言中的一种元数据,它可以在代码中添加一些特殊的标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。 Android ...

    Dwr3+Spring3 全注解 annotation 方式

    4. **注解Java类**:在需要暴露给DWR的Java类上使用`@RemoteProxy`注解,并可以自定义其在客户端的JavaScript接口名。 5. **编写JavaScript**:在客户端的JavaScript代码中,可以直接使用DWR生成的接口调用服务器端...

    Java基础之注解Annotation初入篇_刘永雷

    学习java自定义注解的小例子,处理运行时注解方法,可以结合博客学习,博客地址: http://blog.csdn.net/liuyonglei1314/article/details/59494503

Global site tag (gtag.js) - Google Analytics