`
elfkingw
  • 浏览: 11645 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

annotation的用法

 
阅读更多

1.创建一个自定义annotation

  

package plugintest;

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

/**
 * 自定义annotation
 * @author elfkingw
 * 2013-5-13下午11:09:02
 *
 */
@Retention(RetentionPolicy.RUNTIME)   
@Target(ElementType.FIELD)
public @interface DataFiled {

	/**
	 * 中文名称
	 * @return
	 */
	public String cName();
	/**
	 * 数据类型
	 * @return
	 */
	public String dataType();
	/**
	 * 是否容许为空
	 * @return
	 */
	public boolean isNull();
	
}

 

2.自定义annotation使用

package plugintest;

/**
 * 
 * @author elfkingw 
 * 2013-5-13下午11:09:47
 * 
 */
public class UserVo {

	private String Id;
	@DataFiled(cName = "用户名", dataType = "String", isNull = false)
	private String userName;
	@DataFiled(cName = "密码", dataType = "String", isNull = false)
	private String password;

	public String getId() {
		return Id;
	}

	public void setId(String id) {
		Id = id;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}

 3.annotation 测试

package plugintest;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class AnnotationTest {

	public static void main(String[] args) {
		UserVo vo = new UserVo();
		vo.setId("1");
		vo.setPassword("123456");
		vo.setUserName("elfkingw");
		Class clazz = vo.getClass();
		Field filed[] = clazz.getDeclaredFields();
		try {
			for (int i = 0; i < filed.length; i++) {
				Field f = filed[i];
				String fieldname = f.getName();
				// 得到单个字段上的Annotation
				DataFiled dateFiled = f.getAnnotation(DataFiled.class);
				// 如果标识了Annotationd的话
				if (dateFiled != null) {
					System.out.print(dateFiled.cName()+":");
					StringBuffer getMethodName = new StringBuffer("get");
					getMethodName.append(fieldname.substring(0, 1)
							.toUpperCase());
					getMethodName.append(fieldname.substring(1));
					Method getMethod = clazz.getMethod(getMethodName.toString());
					System.out.println(getMethod.invoke(vo, null));
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

 

分享到:
评论

相关推荐

    JDK5.0 Java Annotation 介绍(ppt)

    三、Annotation 使用方法 1. **类型声明方式**:Annotation 可以用于类型声明,如类、接口、枚举等。 2. **修饰方法的 Annotation**:Annotation 也可以用于修饰方法、变量、构造函数等,提供额外的元信息。 下面...

    jakarta.annotation-api-1.3.5-API文档-中文版.zip

    赠送jar包:jakarta.annotation-api-1.3.5.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    jakarta.annotation-api-1.3.5-API文档-中英对照版.zip

    使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    javax.annotation-api-1.2-API文档-中文版.zip

    赠送jar包:javax.annotation-api-1.2.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    Annotation手册

    Annotation是Java语言中的一种特性,它为程序元素(如包、类、方法、变量等)提供了附加信息。这些信息可以是元数据,用于编译器、工具或运行时系统使用,但不会直接影响程序的执行。在Java中,Annotation表现为一种...

    javax.annotation-api-1.3.2-API文档-中文版.zip

    赠送jar包:javax.annotation-api-1.3.2.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    自定义注解annotation及用法

    定义了注解后,可以在类、方法、变量等处使用。例如: ```java @Loggable(logLevel = Level.DEBUG) public class MyClass { @Loggable public void myMethod() { // ... } } ``` ### 4. 注解处理器 自定义...

    Annotation技术

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

    annotation

    在IT行业中,注解(Annotation)是Java编程语言的一个重要特性,它允许程序员在代码中嵌入元数据,提供了一种安全的方法来修饰程序元素,如类、方法、变量等。注解不会直接影响代码的执行,但它们可以被编译器或运行...

    JAVA 标注annotation

    从某些方面看,annotation就像修饰符一样被使用,并应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中。这些信息被存储在annotation的“name=value”结构对中。annotation类型是一种接口,能够通过...

    Annotation注解的介绍和使用

    当子类的方法声明使用此注释时,编译器将检查是否有对应的超类方法可以重写,如果没有,则会产生编译错误。 ##### 2.3 `@Deprecated`注释 `@Deprecated`注释用于标记那些不推荐使用的方法或类,表明它们可能在未来...

    Hibernate Annotation 中文文档

    这篇文档主要讨论的是Hibernate Annotation的使用方法,以及它如何替代传统的XML配置文件(*.hbm.xml)进行对象-关系映射。 **1. Hibernate Annotation简介** Hibernate Annotation是Hibernate框架的一个扩展,它...

    Annotation详细介绍(大全)

    在代码中使用Annotation就像添加注解一样简单,例如`@MyDefaultAnnotationNoneParam`,将其添加到类、方法、变量等声明前,表示这个元素携带了特定的元信息。 3. **设置参数**: Annotation可以有参数,如`value...

    Spring MVC Annotation验证的方法

    本文将详细介绍 Spring MVC Annotation验证的方法,包括使用 Spring MVC 自带的 Annotation 验证和自定义 Annotation 验证。 一、Spring MVCAnnotation 验证简介 Spring MVC 框架提供了多种Annotation来实现验证,...

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

    Annotation可以应用于类、方法、参数等多种Java程序元素之上。 ##### Annotation的优点: 1. **代码紧密结合:** Annotation与代码紧密结合,有助于提高代码的可读性和理解性。 2. **简化项目管理:** 减少了项目...

    geronimo-annotation_1.0_spec-1.1.1-API文档-中文版.zip

    赠送jar包:geronimo-annotation_1.0_spec-1.1.1.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,

    struts2 使用Annotation 配置的小例子

    在"struts2 使用Annotation 配置的小例子"中,我们可能会看到以下几个核心的Annotation: 1. `@Action`: 这个Annotation用于标记一个方法作为Struts2的动作。你可以指定该动作的名称、结果类型、以及它将执行的类。...

Global site tag (gtag.js) - Google Analytics