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(); } } }
相关推荐
三、Annotation 使用方法 1. **类型声明方式**:Annotation 可以用于类型声明,如类、接口、枚举等。 2. **修饰方法的 Annotation**:Annotation 也可以用于修饰方法、变量、构造函数等,提供额外的元信息。 下面...
赠送jar包:jakarta.annotation-api-1.3.5.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
赠送jar包:javax.annotation-api-1.2.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
Annotation是Java语言中的一种特性,它为程序元素(如包、类、方法、变量等)提供了附加信息。这些信息可以是元数据,用于编译器、工具或运行时系统使用,但不会直接影响程序的执行。在Java中,Annotation表现为一种...
赠送jar包:javax.annotation-api-1.3.2.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
定义了注解后,可以在类、方法、变量等处使用。例如: ```java @Loggable(logLevel = Level.DEBUG) public class MyClass { @Loggable public void myMethod() { // ... } } ``` ### 4. 注解处理器 自定义...
【Annotation技术】是Java语言中的一个重要特性,引入于JDK5,主要目的是为程序元素(如包、类、方法、变量等)添加元数据,即附加信息,这些信息可以被编译器、IDE工具或者运行时系统使用。Annotation不会直接改变...
在IT行业中,注解(Annotation)是Java编程语言的一个重要特性,它允许程序员在代码中嵌入元数据,提供了一种安全的方法来修饰程序元素,如类、方法、变量等。注解不会直接影响代码的执行,但它们可以被编译器或运行...
从某些方面看,annotation就像修饰符一样被使用,并应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中。这些信息被存储在annotation的“name=value”结构对中。annotation类型是一种接口,能够通过...
当子类的方法声明使用此注释时,编译器将检查是否有对应的超类方法可以重写,如果没有,则会产生编译错误。 ##### 2.3 `@Deprecated`注释 `@Deprecated`注释用于标记那些不推荐使用的方法或类,表明它们可能在未来...
这篇文档主要讨论的是Hibernate Annotation的使用方法,以及它如何替代传统的XML配置文件(*.hbm.xml)进行对象-关系映射。 **1. Hibernate Annotation简介** Hibernate Annotation是Hibernate框架的一个扩展,它...
在代码中使用Annotation就像添加注解一样简单,例如`@MyDefaultAnnotationNoneParam`,将其添加到类、方法、变量等声明前,表示这个元素携带了特定的元信息。 3. **设置参数**: Annotation可以有参数,如`value...
本文将详细介绍 Spring MVC Annotation验证的方法,包括使用 Spring MVC 自带的 Annotation 验证和自定义 Annotation 验证。 一、Spring MVCAnnotation 验证简介 Spring MVC 框架提供了多种Annotation来实现验证,...
Annotation可以应用于类、方法、参数等多种Java程序元素之上。 ##### Annotation的优点: 1. **代码紧密结合:** Annotation与代码紧密结合,有助于提高代码的可读性和理解性。 2. **简化项目管理:** 减少了项目...
赠送jar包:geronimo-annotation_1.0_spec-1.1.1.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,
在"struts2 使用Annotation 配置的小例子"中,我们可能会看到以下几个核心的Annotation: 1. `@Action`: 这个Annotation用于标记一个方法作为Struts2的动作。你可以指定该动作的名称、结果类型、以及它将执行的类。...