JAVA自定义注解(小例子)
2016-05-05 09:06
260 查看
代码事例
//注解类 package com.test.dao; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import javax.annotation.Resource; /*注解测试*/ /* 作用域 取值(ElementType)有: 1.CONSTRUCTOR:用于描述构造器 2.FIELD:用于描述域 3.LOCAL_VARIABLE:用于描述局部变量 4.METHOD:用于描述方法 5.PACKAGE:用于描述包 6.PARAMETER:用于描述参数 7.TYPE:用于描述类、接口(包括注解类型) 或enum声明 */ @Target({ ElementType.TYPE, ElementType.METHOD }) @Documented //是否在文档中生成 @Inherited //是否允许继承 /* 注解存在范围--- 在使用Retention时必须要提供一个RetentionPolicy的枚举类型参数。 RetentionPolicy有三个枚举内容:CLASS RUNTIME SOURCE SOURCE, //编译程序处理完Annotation信息后就完成任务 CLASS, //编译程序将Annotation储存于class档中,缺省 RUNTIME //编译程序将Annotation储存于class檔中,可由VM读入(通过反射机制)。这个功能搭配反射是非常强大的。 */ @Retention(RetentionPolicy.RUNTIME) public @interface Test { //可以通过default给参数赋默认值 int age() default 1; String name(); String Date(); }
//被注解类 package com.test.dao; @Test(Date = "2016-5-4", name = "zhang",age=15) public class UserDao { static{ System.out.println("userdao 加载"); } }
//对注解解析 package com.test.dao; import java.lang.annotation.Annotation; public class testMain { public static void main(String[] args) throws ClassNotFoundException { Class user=Class.forName("com.test.dao.UserDao"); //判断是否存在该注解 Annotation bool= user.getAnnotation(Test.class); //获得该注解的对象 Test test= (Test)user.getAnnotation(Test.class); System.out.println(test.Date()); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树