`

java注解例子

 
阅读更多

Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据的访问。另外,你可以在编译时选择代码里的注解是否只存在于源代码级,或者它也能在class文件中出现。

注解的语法比较简单,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种注解,定义在java.lang包中。
      @Override  表示当前方法是覆盖父类的方法。
      @Deprecated  表示当前元素是不赞成使用的。
      @SuppressWarnings 表示关闭一些不当的编译器警告信息。

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

 
package com.annotation.test;

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

/**  
 * 元注解@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 TestAnnotation {
	public int id();
	public String content() default "no content";
}


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

 
package com.annotation.test;

import java.lang.reflect.Method;

public class Test01 {

	/**
	 * 被注解的三个方法
	 */
	@TestAnnotation(id = 1, content = "this is method1")
	public void method1() {

	}

	@TestAnnotation(id = 2)
	public void method2() {

	}

	@TestAnnotation(id = 3, content = "this is method3")
	public void method3() {

	}

	/**
	 * 解析注解,将Test01类 所有被注解方法 的信息打印出来
	 */
	public static void main(String[] args) {
		Method[] methods = Test01.class.getMethods();
		for (Method m : methods) {
			/**
			 * 判断方法中是否有指定注解类型的注解
			 */
			boolean hasAnnotation = m.isAnnotationPresent(TestAnnotation.class);
			if (hasAnnotation) {
				TestAnnotation annotation = m.getAnnotation(TestAnnotation.class);
				System.out.println(m.getName() + " Annotation(id=" + annotation.id() + ", content=" + annotation.content() + ")");
			}
		}
	}

}

 

输出结果如下:
 
method1 Annotation(id=1, content=this is method1)
method2 Annotation(id=2, content=no content)
method3 Annotation(id=3, content=this is method3)

 

分享到:
评论

相关推荐

    spring4基于java注解事例

    在本教程中,我们将深入探讨如何使用Spring 4框架,特别是其基于Java注解的配置方式,来构建一个高效、可维护的系统。Spring 4是Java企业级应用开发的首选框架,它提供了广泛的功能,包括依赖注入、AOP(面向切面...

    Java注解的使用例子

    Java注解(Annotation)是Java语言的一个重要特性,它为元数据提供了一种结构化的方式。元数据是在程序代码中包含的关于程序本身的信息,但这些信息并不直接影响程序的执行。注解允许开发者向编译器、JVM或工具提供...

    java注解使用例子

    Java注解(Annotation)是Java语言提供的一种元数据机制,用于向编译器、JVM或者第三方工具提供信息。在Java程序中,注解可以被附加到类、接口、方法、变量等元素上,用于执行代码检查、生成代码、部署等任务。本篇...

    java 自定义注解例子

    本教程将通过一个超市自动售卖机的例子来详细讲解如何在Java中实现自定义注解。 首先,我们需要了解注解的基本结构。在Java中,注解以`@`符号开头,后面跟着注解的名称。自定义注解的定义类似于接口,但使用`@...

    java java入门例子 包含说明和注释

    java java java入门例子 包含说明和注释

    java小例子

    14. **注解(Annotation)**:注解是一种元数据,可以为编译器或JVM提供有关代码的附加信息,例子可能涉及自定义注解及其处理器。 15. **Lambda表达式和函数式编程**:Java 8引入了Lambda表达式,简化了对匿名函数...

    100个Java经典例子后端- Java

    "100个Java经典例子后端- Java"这个资源显然旨在帮助开发者通过实践加深对Java的理解,尤其在后端开发领域。下面我们将深入探讨这些经典例子可能涵盖的知识点。 1. **基础语法**: 包括变量声明、数据类型(如基本...

    JAVA 注解示例 详解

    本篇文章将深入探讨Java注解的使用及其在实际开发中的应用。 首先,我们了解Java注解的基本结构。一个注解以`@`符号开头,后面跟着注解类型,如`@Override`或`@Deprecated`。注解可以带有参数,参数以键值对的形式...

    Java程序例子

    13. **注解与元编程**: 注解提供了一种向编译器或JVM提供额外信息的方式,例子可能展示它们在编译时验证、运行时处理等方面的应用。 14. ** Lambda表达式与函数式编程**:Java 8引入了Lambda表达式,简化了函数式...

    java 自定义注解例子 superMarket

    在Java编程语言中,注解(Annotation)是一种元数据,它提供了向编译器或JVM提供信息的方式,这些信息可以用于代码分析、编译时验证或者运行时处理。自定义注解允许开发者创建自己的元数据类型,以满足特定的需求。...

    关于java注解比较详细的例子

    Java注解(Annotation)是Java语言的一个重要特性,它为代码提供了一种元数据,用于在编译时或运行时进行处理。注解不会直接影响程序的执行,但可以通过注解处理器来实现特定的功能,例如代码生成、验证、性能监控等...

    java web定时器例子

    在Java中,我们可以利用内置的`java.util.Timer`类或者Spring框架的`@Scheduled`注解来实现定时任务。 一、Java `java.util.Timer` 类 `java.util.Timer` 类和`TimerTask` 类是Java的标准库提供的定时任务工具。`...

    java关于注解使用的例子

    通过学习这些例子,你可以深入理解Java注解的工作原理,如何创建和使用自定义注解,以及它们在实际项目中的应用。同时,你还可以了解注解与其他Java特性的交互,如反射和注解处理器,这将有助于提升你的Java编程技能...

    经典java继承例子

    在这个经典的Java继承例子中,我们将深入理解这一机制。 首先,我们要明确的是,继承的主要目的是减少代码冗余,提高代码的可维护性和可扩展性。在Java中,我们使用`extends`关键字来表示一个类继承自另一个类。...

    Java注解实现方式

    Java注解是Java编程语言中的一个重要特性,它允许程序员在代码中嵌入元数据,这些元数据可以被编译器或运行时环境用来执行各种任务,例如代码分析、验证、生成代码、部署等。注解提供了更加灵活和可扩展的方式来处理...

    Java自定义注解实例

    ### 一、Java注解概述 1. **定义**: 注解是一种声明式的编程元素,以`@`符号开头,后面跟着注解的名称。它们可以应用于类、接口、方法、变量等不同级别。 2. **预定义注解**: Java标准库提供了若干预定义注解,如`...

    Java代码的例子全集

    "Java代码的例子全集"这个资源显然旨在为开发者提供一个广泛的Java编程示例集合,帮助他们理解和掌握Java语言的不同方面。这个压缩包可能包含了从基础语法到高级特性的各种示例,对于初学者和有经验的开发者来说都是...

    java简单程序小例子

    此外,注解(Annotation)是Java 5引入的特性,它可以为代码提供元数据,用于编译时或运行时的处理。 总的来说,"java简单程序小例子"涵盖了Java编程的基础知识,包括语法、面向对象编程、异常处理、集合框架、多...

    Java教程例子 教程 例子

    Java教程例子教程例子 ...以上只是部分可能涵盖的Java知识点,实际例子中可能还涉及了更多的主题,如反射、注解、枚举、 Lambda表达式等。通过实践这些例子,学习者不仅可以加深理论理解,还能提高实际编程能力。

    用java写的一些小例子

    "用java写的一些小例子"这个标题和描述暗示了我们将会探讨一些基础到进阶的Java编程示例。这些小例子通常用于教学目的,帮助初学者理解和掌握Java编程的核心概念。 在Java的学习过程中,我们可以从以下几个方面进行...

Global site tag (gtag.js) - Google Analytics