java 自定义注解
2016-04-07 17:33
351 查看
元注解:
元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:
1.@Target,
2.@Retention,
3.@Documented,
4.@Inherited
这些类型和它们所支持的类在java.lang.annotation包中可以找到。下面我们看一下每个元注解的作用和相应分参数的使用说明。
@Target:
@Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。
作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
取值(ElementType)有:
1.CONSTRUCTOR:用于描述构造器
2.FIELD:用于描述域
3.LOCAL_VARIABLE:用于描述局部变量
4.METHOD:用于描述方法
5.PACKAGE:用于描述包
6.PARAMETER:用于描述参数
7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
实例:
使用
元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:
1.@Target,
2.@Retention,
3.@Documented,
4.@Inherited
这些类型和它们所支持的类在java.lang.annotation包中可以找到。下面我们看一下每个元注解的作用和相应分参数的使用说明。
@Target:
@Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。
作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
取值(ElementType)有:
1.CONSTRUCTOR:用于描述构造器
2.FIELD:用于描述域
3.LOCAL_VARIABLE:用于描述局部变量
4.METHOD:用于描述方法
5.PACKAGE:用于描述包
6.PARAMETER:用于描述参数
7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
实例:
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MyAnnotation { public String anthor(); public String descripte(); }
使用
@MyAnnotation(anthor="sunny",descripte="define annotation by myself") public class Demo { public static void main(String[] args) { fun2(); } public static void fun2(){ Class<Demo> c = Demo.class; Annotation[] an = c.getAnnotations(); for(Annotation a : an){ if(a instanceof MyAnnotation){ MyAnnotation _a = (MyAnnotation)a; System.out.println(_a.anthor()); System.out.println(_a.descripte()); } } } public static void fun1(){ Class<Demo> c = Demo.class; MyAnnotation my = (MyAnnotation)c.getAnnotation(MyAnnotation.class); System.out.println(my.anthor()); System.out.println(my.descripte()); } }
相关文章推荐
- 升级java1.8及ssh版本中碰到的问题(二)
- JAVA获取某个时区的时间
- spring mvc 详细配置
- sonarqube的安装
- java实现敏感词过滤
- 基础排序算法(Java实现)
- java多线程例子
- java:IO流学习小结
- java学习笔记(八)
- 如何在eclipse中debug调试进入JDK源码及显示调试过程中的局部变量的值
- (转) 40个Java多线程问题总结
- struts中国际化之读取资源文件
- Spring MVC中的DispatcherServlet学习
- mybatis整合spring、springmvc时业务层无法进行事务回滚问题解决
- [遇见时光]Java多线程
- 6种Java序列化框架
- java.pojo工具类
- Java总结 第三篇 常用工具类
- java locks包下提供的锁。
- 100天JAVA学习计划04-认识封装