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

JDK 之 Annotation

    博客分类:
  • jdk
阅读更多
通过学习,发现Annotation真是个好东西,于是就自己写了个简单的例子;
第一步:
先定义一个@interface:
package com.org.jdk;

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

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface FirstAnn {
	String value() default "我是一个默认值";
}

@Target:指定程序元定义的注释所使用的地方,它使用了另一个类:ElementType,是一个枚举类定义了注释类型可以应用到不同的程序元素以免使用者误用。
ElementType是一个枚举类型,指明注释可以使用的地方,(API)
@Retention:这个元注释和java编译器处理注释的注释类型方式相关,告诉编译器在处理自定义注释类型的几种不同的选择,需要使用RetentionPolicy枚举类。(API)

第二步:
调用
package com.org.jdk;

@FirstAnn("这是一个简单的例子")
public class AnnoTest {

	@MethodAnn(server_url="http://192.168.0.0",server_username="root",server_password="root")
	public String getConnection(){
		return "这是一个方法的例子";
	}
}



第三步:
利用jdk的反射可以检验一下:
package com.org.jdk;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

public class AnnotationTest {

	public static void main(String[] arg) {
		try {
			Class obj = Class.forName("com.org.jdk.AnnoTest");
			Method[] methods = obj.getMethods();
			boolean flag = obj.isAnnotationPresent(FirstAnn.class);
			if (flag) {
				FirstAnn t = (FirstAnn) obj.getAnnotation(FirstAnn.class);
				System.out.println(t.value());
			}
			
			 List<Method> list = new ArrayList<Method>();
			  for (int i = 0; i < methods.length; i++) {
			    list.add(methods[i]);
			  }

			for (Method m : list) {
				MethodAnn t = m.getAnnotation(MethodAnn.class);
				if (t == null)
					continue;
				System.out.println(t.server_url() + "\t" + t.server_username()
						+ "\t" + t.server_password());
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

	}
}



运行结果:

这是一个简单的例子
http://192.168.0.0	root	root



运行正确.
分享到:
评论

相关推荐

    JDK5.0 Java Annotation 介绍(ppt)

    Java Annotation 是 JDK5.0 引入的一种元数据机制,它允许程序员在代码中嵌入额外的信息,这些信息可以被编译器、构建工具或运行时系统用来执行特定的任务。Annotation 提供了一种安全、灵活的方式来描述代码的属性...

    JDK1.5的annotation

    标题 "JDK1.5的annotation" 指的是Java Development Kit 1.5引入的注解(Annotation)特性。注解是一种元数据,它提供了在代码中嵌入信息的方式,这些信息可以被编译器或Java虚拟机(JVM)在编译时或运行时读取和...

    Annotation--学习:JDK内建Annotation

    在本篇中,我们将深入探讨JDK内置的Annotation,了解它们的用途、工作原理以及如何在实际开发中应用。 1. **注解的基本概念** 注解是一种特殊类型的声明,可以附加到类、接口、字段、方法、构造器等程序元素上。...

    javax.annotation-api-1.3.2

    JDK9及以上版本没有javax.annotation-api-***.jar包 ,无法使用注解:@Resource JDK新特性,高版本JDK没有自带的javax(java扩展包)了。或者是使用的JDK不完整。 下载javax.annotation.jar包,导入到lib文件夹下,...

    Annotation(注解)详细教程,jdk新特性

    Annotation(注解)是Java编程语言的一个重要特性,自JDK 1.5引入以来,逐渐成为编写可维护和可扩展代码的关键工具。...对于Java开发者来说,理解和熟练运用Annotation是现代Java编程的必备技能之一。

    Java annotation (JDK5)

    Java注解(JDK5)是Java编程语言中的一个重要特性,自Java 5版本开始引入。注解(Annotation)提供了一种元数据的形式,允许程序员在代码中嵌入额外的信息,这些信息可以被编译器、JVM或者专门的处理工具在编译时或...

    详解JDK 5 Annotation 注解之@Target的用法介绍

    在Java编程语言中,注解(Annotation)是一种元数据,它提供了一种安全的方法来关联信息于程序元素,如类、方法、变量等,而这些信息可以被编译器或运行时系统用来进行验证或执行特定的任务。自JDK 5开始,注解成为...

    异常解决:错误:namespace element 'annotation-config' … on JDK 1.5 and higher

    标题中的“异常解决:错误:namespace element 'annotation-config' … on JDK 1.5 and higher”涉及的是在Java开发过程中遇到的一个错误,特别是在使用Spring框架时可能会遇到。这个错误通常表明在JDK 1.5及更高版本...

    JDK5.0-Java Annotation 介绍

    Java Annotation(注解)是自JDK 5.0开始引入的一种元数据,它提供了一种安全、非侵入式的方式来向编译器、虚拟机或者其他的工具提供关于代码的信息。这种信息可以用来进行编译时检查、运行时处理、代码生成等。注解...

    Annotation技术

    【Annotation技术】是Java语言中的一个重要特性,引入于JDK5,主要目的是为程序元素(如包、类、方法、变量等)添加元数据,即附加信息,这些信息可以被编译器、IDE工具或者运行时系统使用。Annotation不会直接改变...

    javax.annotation-api-1.2.jar

    javax.annotation-api-1.2.jar包,注解,声明,@Resource是做bean的注入使用。

    jdk1.6.0_10

    同时,增加了`javax.annotation`包,提供注解处理的基础设施,使得开发人员能够创建自定义的注解处理器。 此外,JDK1.6.0_10还对Java运行时性能进行了多方面的优化,包括编译优化、内存分配优化和线程调度优化等。...

    java的jdk6安装包

    Java JDK(Java Development Kit)是Oracle公司提供的用于开发和运行Java应用程序的软件...随着技术的演进,虽然现在最新的版本已经更新到Java 17,但理解并掌握Java 6的基础知识仍然是每个Java程序员必备的技能之一。

    用Annotation简化Java程序的开发(PDF)

    **Annotation** 是Sun Microsystems(现已被Oracle收购)在发布JDK 5.0时新增的重要特性之一。这种特性允许开发者在代码中添加元数据,即用来描述其他代码的数据。Annotation可以应用于类、方法、参数等多种Java程序...

    JDK1.8_中文有道翻译版.zip

    10. **Type Annotation** 类型注解是JDK1.8的一个增强,允许在类型使用处(如变量声明、方法签名等)添加注解,增强了静态分析工具和编译器的能力。 总的来说,JDK1.8不仅为Java开发者带来了更高效的编码体验,还...

    离线JDK9中文版 | API_jdk-9.CHM

    7. **反射和注解处理**:如`java.lang.reflect`和`java.lang.annotation`,用于运行时检查类、接口和方法的信息。 8. **XML和JSON处理**:如`javax.xml`和`com.fasterxml.jackson.core`,处理XML和JSON数据。 9. *...

    jdk1.6 chm文档

    注解(Annotation)作为一种元数据,可以用于编译时和运行时的代码处理,简化了代码维护和验证。 4. **国际化与本地化**:在JDK 1.6中,`java.text`和`java.util`包提供了丰富的支持,方便开发出符合不同地区和语言...

    jdk6_api文档 中文版

    同时,注解(Annotation)作为一种元数据,可以用于编译时或运行时进行代码分析,如`@Override`用于标记重写的方法,`@Deprecated`用于表示某个方法或类不再推荐使用。 七、国际化 `java.text`和`java.util`包提供...

    jdk1.8 sun源码

    9. **反射与注解**:`java.lang.reflect`包中的反射API以及`java.lang.annotation`包中的注解机制,源码可以帮助理解这两者的底层实现。 10. **安全管理**:`java.security`包中的类和接口,如`SecurityManager`,...

Global site tag (gtag.js) - Google Analytics