注解的一个示例
2013-02-04 23:50
183 查看
package com.james.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Description { String value(); }
是定义对类的注解
package com.james.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Name { String originage(); String community(); }是定义对方法的注解
package com.james.annotation; @Description(value="This is James' community!") public class Mycommunity { @Name(originage="james",community="DP") public String getName(){ return null; } @Name(originage="cindy",community="TX") public String getName2(){ return null; } }将注解应用于类和方法
package com.james.annotation; import java.lang.reflect.Method; import java.util.HashSet; import java.util.Set; public class TestAnnotation { /** * @param args */ public static void main(String[] args) throws Exception{ String className = "com.james.annotation.Mycommunity"; Class cla = Class.forName(className); Method[] methods = cla.getMethods(); boolean flag = cla.isAnnotationPresent(Description.class); if(flag){ Description des = (Description)cla.getAnnotation(Description.class); System.out.println("描述:"+des.value()); System.out.println("-------------------"); } Set<Method> set = new HashSet<Method>(); for(int i=0;i<methods.length;i++){ boolean methodFlag = methods[i].isAnnotationPresent(Name.class); if(methodFlag) set.add(methods[i]); } for (Method m:set){ Name name = m.getAnnotation(Name.class); System.out.println("Org: "+name.originage()); System.out.println("Comm: "+name.community()); } } }分别获取类和方法的注解信息!
相关文章推荐
- 基于注解的spring AOP的一个示例
- Asp.net 2.0 自定义控件开发[开发一个图表(WebChart)控件(柱状图示例)](示例代码下载)
- 最简单的一个Java窗体示例!
- Asp.net 2.0 自定义控件开发[开发一个图表(WebChart)控件(柱状图示例)](示例代码下载)
- 一个简单的打印监控示例
- Hapdoop的一个Mapreduce示例代码--统计单词个数有排序功能
- Linux Socket 事件触发模型 epoll 示例 这里会写一个用C语言的TCP服务器的完全实现的简单程序
- 14.9: 示例---帧中的一个导航栏
- 演示一个TDE的数据加密示例,并用logminer验证加密效果
- 一个类簇的实现示例(来自mantle的github主页)
- VB.NET制作外接程序的一个示例
- 使用Vue写一个datepicker的示例
- RN(react native)入坑指南-02,一个登录示例
- Direct Show 开发的一个示例
- 一个简单的WCF示例
- ArcGIS Server 9.3 JavaScript API实战----一个具体的小系统示例介绍
- SQL Server 处理树结构数据的一个示例
- 一个golang http包自带的绝佳示例
- spring注解 实现一个接口多个实现类的区分
- Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!