`
lokepaqi
  • 浏览: 46086 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

注解入门

    博客分类:
  • j2ee
 
阅读更多
注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后某个时刻方便地使用这些数据(通过解析注解来使用这些数据)。 

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

@Override 表示当前方法是覆盖父类的方法。 
@Deprecated 表示当前元素是不赞成使用的。 
@SuppressWarnings表示关闭一些不当的编译器警告信息。 

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

 import java.lang.annotation.Documented;     
 import java.lang.annotation.Inherited;     
 import java.lang.annotation.Retention;     
 import java.lang.annotation.Target;     
 import java.lang.annotation.ElementType;     
 import java.lang.annotation.RetentionPolicy;     
     
 /*   
  * 元注解@Target,@Retention,@Documented,@Inherited   
  *    
  * @Target 表示该注解用于什么地方,可能的 ElemenetType 参数包括:   
  * ElemenetType.CONSTRUCTOR 构造器声明   
  * ElemenetType.FIELD 域声明(包括 enum 实例)   
  * ElemenetType.LOCAL_VARIABLE 局部变量声明   
  * ElemenetType.METHOD 方法声明   
  * ElemenetType.PACKAGE 包声明   
  * ElemenetType.PARAMETER 参数声明   
  * ElemenetType.TYPE 类,接口(包括注解类型)或enum声明   
  *            
  * @Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括:   
  * RetentionPolicy.SOURCE 注解将被编译器丢弃   
  * RetentionPolicy.CLASS 注解在class文件中可用,但会被VM丢弃   
  * RetentionPolicy.RUNTIME VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。   
  *            
  *@Documented 将此注解包含在 javadoc 中   
  *        
  *@Inherited 允许子类继承父类中的注解   
  *      
  */    
 @Target(ElementType.METHOD)     
 @Retention(RetentionPolicy.RUNTIME)     
 @Documented    
 @Inherited    
 /*   
  * 定义注解 Test   
  * 注解中含有两个元素 id 和 description   
  * description 元素 有默认值 "no description"   
  */    
 public @interface Test {     
     public int id();     
     public String description() default "no description";     
 }    

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

 import java.lang.reflect.Method;     
     
 public class Test_1 {     
     /*   
      * 被注解的三个方法   
      */    
     @Test(id =1, description ="hello method_1")      
      public void  method_1() {      
     }      
      
      @Test (id = 2 )      
      public void method_2() {      
     }      
      
      @Test(id =3, description ="last method" )      
      public void method_3() {      
     }      
      
      /*    
      * 解析注解,将Test_1类 所有被注解方法 的信息打印出来    
      */      
      public static void main(String[] args) {      
         Method[] methods = Test_1.class.getDeclaredMethods();      
          for(Method method : methods) {      
              /*    
              * 判断方法中是否有指定注解类型的注解    
              */      
              boolean  hasAnnotation = method.isAnnotationPresent(Test.class);      
              if  (hasAnnotation) {      
                  /*    
                  * 根据注解类型返回方法的指定类型注解    
                  */      
                 Test annotation = method.getAnnotation(Test.class );      
                 System.out.println("Test(method ="  + method.getName()      
                         + " , id = "+ annotation.id() + ", description = "      
                         + annotation.description() + ")" );      
             }      
         }      
     }      
      
 }   
输出结果:

C:\java>java Test_1
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)
分享到:
评论

相关推荐

    Spring 注解 入门

    Spring注解是Spring框架中的一个重要特性,它极大地简化了配置,提高了代码的可读性和可维护性。在本文中,我们将深入探讨如何使用Spring注解进行属性注入,并重点关注`@Autowired`和`@Qualifier`这两个关键注解。 ...

    基于Spirng MVC注解入门

    **基于Spring MVC注解入门** 在Java Web开发中,Spring MVC框架因其强大的功能和灵活性而备受青睐。Spring MVC是Spring框架的一部分,它提供了一个用于构建Web应用程序的模型-视图-控制器(MVC)架构。本文将深入...

    javaSpring注解入门[参考].pdf

    Java Spring注解入门 Java Spring框架中,注解是一种非常重要的概念,它可以帮助我们简化配置文件的编写,并提高代码的可读性和维护性。在本节中,我们将学习如何使用Spring注解来实现属性的自动装配。 1. 使用...

    struts 注解入门到精通

    struts 注解入门到精通,该文档详细描述了所有的注解,方便大家入门

    Spring注解入门

    本文主要探讨的是Spring注解入门,特别是关于如何使用注解来注入属性,以及与之相关的`@Autowired`和`@Qualifier`注解的使用。 在Spring 3及更高版本中,Spring MVC也广泛采用了注解,使得控制器类的编写更为简洁。...

    注解入门小解

    注解(Annotation)是Java语言中的一个重要特性,它为代码提供了元数据,即关于数据的数据。这些元数据可以被编译器或者在运行时的Java虚拟机(JVM)...提供的注解入门资料将帮助初学者快速上手并掌握这一强大的特性。

    spring注解入门

    ### Spring注解入门 在Java开发领域,Spring框架一直占据着举足轻重的地位,它不仅简化了Java EE的应用开发,还提供了强大的依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, ...

    spring_mvc注解入门

    自Spring 2.5版本开始,Spring MVC引入了注解支持,极大地简化了开发过程,减少了XML配置。本文主要介绍如何利用注解来配置Spring MVC,替代传统的基于XML的配置方式。 1. **Controller的定义与管理**: 在传统的...

    hibernate-3.4 注解 入门简单示例

    hibernate-3.4入门的简单示例,用注解的方式操作oracle数据库。源码导入可运行。 还包括hibernate-annotations-3.4.0.GA.zip、hibernate-distribution-3.3.2.GA-dist.zip、slf4j-1.5.8.zip、ojdbc14.jar

    springMVC 注解入门例子

    在这个入门例子中,我们将探讨如何使用SpringMVC的注解来实现用户信息的保存和文件上传功能。 首先,让我们了解SpringMVC的核心组件: 1. **DispatcherServlet**:它是SpringMVC的前端控制器,负责接收HTTP请求,...

    android 注解入门(Acitivity路由demo)

    近期接触了路由和模块间通信的内容,发现Java注解非常常用。 避免后面看各源码被其阻塞,大致了解了下,作此文记录之。 注解类型 @Target @Retention @Documented @Inherited @Target 用于描述注解的使用范围,可能...

    基于Java注解(Annotation)的自定义注解入门介绍

    在Java编程中,注解(Annotation)是一种强大的工具,它允许程序员向源代码中添加元数据,这些元数据可以被编译器或运行时环境用于各种目的,如代码分析、验证、生成代码等。自定义注解是Java注解机制的一个重要方面,...

    java-annotation:Java注解入门教程

    Java注解是Java编程语言中的一个重要特性,它提供了一种元数据的方式,使得开发者可以在代码中添加额外的信息,这些信息可以被编译器或者运行时环境用来进行代码分析、验证或者自动化处理。本教程将带你深入理解Java...

    springmvc入门实例(注解)

    本入门实例将重点介绍如何使用注解来简化Spring MVC的配置,以便快速入门。Eclipse Dynamic Web工程是开发此类应用的常见环境。 首先,我们需要创建一个Eclipse Dynamic Web项目。在Eclipse中,选择"File" -> "New...

    Java注解入门到精通,这一篇就够了

    【Java注解】是Java语言中的一个重要特性,它允许开发者在源代码的各个层次(如类、接口、方法、变量)添加元数据。元数据是关于数据的数据,它不直接影响程序的执行,但能为编译器、工具或运行时环境提供额外的信息...

    使用Spring的注解方式实现AOP入门

    本教程将引导您入门Spring的注解式AOP实现。 首先,我们需要理解AOP的基本概念。AOP的核心是切面(Aspect),它封装了特定的关注点,如日志记录。切点(Pointcut)定义了在何时应用这些关注点,通常是一个方法调用...

    Spring3 MVC Annotaction入门(登录示例)

    **Spring3 MVC 注解入门(登录示例)** 在本文中,我们将深入探讨Spring3 MVC框架中的注解,以及如何利用这些注解构建一个简单的登录应用程序。Spring MVC是Spring框架的一部分,它提供了一种用于构建Web应用程序的...

    springMVC入门框架(非注解)

    本入门教程针对初学者设计,旨在帮助你快速掌握Spring MVC的基本概念和使用方法,而不涉及高级的注解配置。 Spring MVC是Spring框架的一个模块,主要负责处理HTTP请求并返回响应。它遵循Model-View-Controller...

    非注解Springmvc+spring+hibernate 入门实例

    下面我们将深入探讨"非注解SpringMVC+Spring+Hibernate入门实例"中的关键知识点。 首先,让我们从SpringMVC开始。SpringMVC是一个Model-View-Controller架构模式的实现,用于构建Web应用程序。在非注解方式下,我们...

    Android 注解快速入门和实用解析.rar_Android 注解_android

    本篇文章将深入探讨Android注解的快速入门及其实用解析。 注解的种类在Android中多种多样,从基本的`@Override`到自定义注解,它们各有其独特的用途。`@Override`是最常见的注解之一,用于声明一个方法重写了父类的...

Global site tag (gtag.js) - Google Analytics