`
elfkingw
  • 浏览: 11180 次
  • 性别: 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();
		}
	}
}

 

 

分享到:
评论

相关推荐

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

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

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

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

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

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

    struts2 annotation 注解使用

    struts2 annotation 注解的详细介绍及使用方法

    java教程之java注解annotation使用方法

    主要介绍了java注解annotation使用方法,注解可以定义到方法上,类上,一个注解相当与一个类,就相当于实例了一个对象,加上了注解,就相当于加了一个标志

    自定义注解annotation及用法

    自定义注解annotation及用法

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

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

    JAVA 标注annotation

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

    Java Annotation注解.doc

    本文针对java初学者或者annotation初次使用者全面地说明了annotation的使用方法、定义方式、分类。初学者可以通过以上的说明制作简单的annotation程序,但是对于一些高级的annotation应用(例如使用自定义annotation...

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

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

    Annotation手册

    Java Annotation的初学者的入门样例,让读者更快的了解Annotation的用法和语法。

    mybatis-plus-annotation-3.2.0-API文档-中英对照版.zip

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

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

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

    Annotation(注解)

    Annotation的概念和作用 @Override注释的功能和用法 @Deprecated注释的功能和用法 @Suppress Warning注释的功能和用法 自定义注释 提取注释信息

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

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

    Java-Annotation使用大全.doc

    本文档主要讲述的是Java-Annotation使用大全;Annotation 提供了一条与程序元素关联任何信息...从某些方面看,annotation就像修饰符一样被使用,并应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中。

    Java+Annotation.pdf

    针对java 初学者或者annotation 初次使用者全面地说明了annotation 的使用方法、定义 方式、分类。初学者可以通过以上的说明制作简单的annotation 程序,但是对于一些高级的 annotation 应用(例如使用自定义...

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

    # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作...

    Java-Annotation手册.docx

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

    Java annotation

    本文针对java初学者或者annotation初次使用者全面地 说明了annotation 的使用方法、定义方式、分类。初学者可以通过以上的说明制作简单的 annotation程序,但是对于一些高级的 annotation应用

Global site tag (gtag.js) - Google Analytics