`
步行者
  • 浏览: 169783 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JAVA 注解示例 详解

    博客分类:
  • JAVA
阅读更多

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

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

 

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

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

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

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

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

 

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

 

package Test_annotation;

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";
}
   

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

 

package Test_annotation;

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() + " )");
			}
		}
	}

}
   
输出结果如下:

    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 )

 

分享到:
评论
8 楼 ahzdc 2013-07-24  

讲的很好啊
7 楼 elisonwell 2013-04-03  
不错,我喜欢
6 楼 ibelieve1314love 2013-01-10  
非常清楚明白,顶!
5 楼 yzyeilin 2013-01-10  
很清晰啊,,要是把反射加进去应该会更好
4 楼 jason_onetwo 2012-12-12  
正在学习中。。
3 楼 sarahtest 2012-11-20  
嗯,这个很是清晰
2 楼 xzs603 2012-11-07  
1 楼 lianj_lee 2009-12-06  
讲的非常到位啊!
为什么都没人顶呢!
我来啦

相关推荐

    android&java的注解详解demo

    在编程世界中,Java注解(Annotation)是一个强大的工具,它允许程序员在代码中嵌入元数据,这些元数据不直接影响程序的运行,但可以被编译器或运行时环境用来进行各种处理。Android开发中,注解同样扮演着重要角色...

    spring注解注入示例详解.pdf

    @Resource是Java标准规范JSR-250中的注解,它也可以用于自动装配。与@Autowired不同的是,@Resource默认按名称(byName)进行自动装配,当没有指定name属性时,再按类型装配。 @Resource有两个重要的属性,name和...

    arcobjects sdk for java,arcgis二次开发官方示例代码和文档

    《ArcGIS二次开发:Java版ArcObjects SDK与官方示例详解》 ArcGIS是一个强大的地理信息系统(Geographic Information System),广泛应用于地图制作、空间分析、地理数据管理等多个领域。为了帮助开发者利用Java...

    spring注解注入示例详解-(三)

    本文将深入探讨Spring注解注入的原理、使用方法及示例。 首先,让我们了解Spring注解注入的基本概念。在Java中,注解是一种元数据,它提供了在源代码中附加信息的方式。Spring框架支持多种注解,如`@Autowired`、`@...

    java注解详解

    ### Java注解详解 #### 一、注解(Annotation)简介 注解是Java语言自JDK 5.0版本引入的一种新特性,用于在代码中添加元数据(即关于数据的数据)。它允许开发人员向Java编译器、工具和其他框架提供额外的信息,而不...

    Eclipse Java注释模板设置详解

    ### Eclipse Java注释模板设置详解 在开发过程中,良好的代码注释习惯对于提高代码的可读性和维护性具有重要作用。Eclipse作为一款流行的Java集成开发环境(IDE),提供了丰富的功能来帮助开发者更好地管理代码和...

    java教程之java继承示例详解

    "java继承示例详解" java继承是指新定义的类从已有的类中获取属性和方法的现象。这个已有的类叫做父类,而从这个父类获取属性和方法的类叫做子类。继承的主要优点是提高了代码的重用性,让类和类之间产生了关系,为...

    java 反射机制详解

    - **元数据处理**:如注解(Annotation)的处理,获取类、方法上的注解信息。 - **序列化与反序列化**:在对象序列化过程中,反射用于获取对象的属性信息。 - **测试工具**:JUnit 等测试框架利用反射来调用私有方法...

    JAVA编程注释规范详解

    ### JAVA编程注释规范详解 #### 一、引言 注释是软件开发过程中不可或缺的部分,它能够帮助开发者更好地理解代码的功能与实现细节,提高代码的可读性和可维护性。在Java编程语言中,良好的注释习惯尤为重要,因为...

    java注释详解

    ### Java注释详解 #### 注释的原则 在Java编程中,注释是非常重要的组成部分,它不仅帮助开发者理解代码的功能和用途,还提高了代码的可维护性和可读性。以下是关于Java注释的一些基本原则: 1. **注释形式的统一...

    Eclipse Java注释模板.txt

    ### Eclipse Java注释模板知识点详解 #### 一、概述 在进行Java开发的过程中,良好的代码注释习惯不仅能帮助自己快速回顾代码逻辑,还能方便其他开发者理解代码意图,从而提高整个团队的工作效率。Eclipse作为一款...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    13.2.4 示例 414 13.3 网上书店程序 418 13.4 小结 440 第14章 jsp开发的两种模型 441 14.1 模型1 441 14.2 模型2 445 14.3 小结 449 第15章 标签库(tag library) 450 15.1 标签库api 450 15.1.1 标签的...

    Eclipse/MyEclipse Java注释模板设置详解

    在Java开发过程中,Eclipse和MyEclipse作为两款流行的集成开发环境(IDEs),提供了许多便利的功能,其中包括自定义代码注释模板。这篇详细的教程将深入讲解如何在Eclipse和MyEclipse中设置Java注释模板,以提高开发...

    spring注解注入示例详解[文].pdf

    在Spring框架中,注解注入是一种非常常见的...理解并正确使用这些注解,能够帮助我们构建更加模块化和易于维护的Java应用程序。在实际开发中,推荐使用`@Resource`注解,因为它遵循JSR-250标准,具有更好的可移植性。

    java注释规范文档

    ### Java注释规范详解 #### 一、引言 在软件开发过程中,代码注释扮演着极其重要的角色。良好的注释不仅可以帮助其他开发者快速理解代码的功能和用途,还能提高整个团队的工作效率。Java作为一种广泛使用的编程...

    Java 语法糖详解1

    Java 语法糖详解 在编程世界中,语法糖(Syntactic Sugar)是一种设计语言时引入的特性,它不增加新的功能,而是提供更简洁、更易读的语法,使得编写代码更为方便。这一概念由Peter J. Landin提出,自那时以来,许多...

    Java_Annotation详解

    #### 内置注释示例 Java提供了几种常用的内置注释,每种都有其特定用途,下面详细介绍三种典型的内置注释: - **@Override**:用于明确表示当前方法是覆盖父类中的同名方法。此注释有助于编译器在遇到方法签名改变...

Global site tag (gtag.js) - Google Analytics