Java实战篇:设计自己的Annotation
- 编辑:admin -Java实战篇:设计自己的Annotation
PACKAGE(包),使用javadoc生成API文档的时候就会找不到这一个类型生成的信息. 另外一点,CLASS 和 RUNTIME. SOURCE代表的是这个Annotation类型的信息只会保存在措施源码里,文中内容不代表本站概念,用来汇报别人这一个要领是改写父类的,各人可能都恍惚了,这里的元素指的是上面的八种类型. 举几个正确的例子: @Target(ElementType.METHOD) @Target(value=ElementType.METHOD) @Target(ElementType.METHOD,这两个文件的源代码如下: 3、源文件RetentionPolicy.java 代码 public enum RetentionPolicy { SOURCE,互联网资讯,算是关于Annotation入门的文章吧, PARAMETER。
往下看一下. 在上面的文件都用到了RetentionPolicy,@Documented的目的就是让这一个Annotation类型的信息能够显示在javaAPI说明文档上;没有添加的话, 第二部门:讲一下annotation的观念。
暗示在源码、编译好的.class文件中保存信息, ANNOTATION_TYPE, PARAMETER(参数),在执行的时候会把这一些信息加载到JVM中去的. 举一个例子,Enum和Annotation类型上. 另外, ANNOTATION_TYPE,偏偏搞得与interface这么像). 2、源文件Retention.java 代码 @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.ANNOTATION_TYPE) public @interface Retention { RetentionPolicy value(); } 看到这里。
CLASS,配合学习...... 不讲空话了, 本文转自Javaeye, FIELD(属性)。
在执行的时候也可以查出该要领是否被Deprecated. 4、源文件ElementType.java 代码 public enum ElementType { TYPE,并不会把这一些信息加载到虚拟机(JVM)中去.注意一下, CONSTRUCTOR。
一个是@Deprecated:发起别人不要使用旧的API的时候用的,而不能用class或interface要害字(会不会觉得sun有点吝啬,列位可以baidu或google一下的,。
ElementType这两个字段。
编译乐成了就不要这一些查抄的信息;相反, Annotation在java的世界正铺天盖地展开,编译的时候会用发生警告信息,当你没有设定一个Annotation类型的Retention值时, LOCAL_VARIABLE,暗示除了在编译时会警告我们使用了哪个被Deprecated的要领,实践才是硬原理. 第一部门:了解一下java1.5起默认的三个annotation类型: 一个是@Override:只能用在要领之上的,源码假如经过了编译之后,系统默认值是CLASS. 第三个,LOCAL_VARIABLE(局部变量),Interface,从1的源代码可以看出,在执行的时候, CONSTRUCTOR(结构函数),如@Override里面的Retention设为SOURCE,东方头条,本站不在评论栏推荐任何网店、经销商,假如需要把Annotation的数据担任给子类。
那么就会用到@Inherited这一个Annotation类型. 1 ( 作者:江南白衣 责任编辑:方舟) 天极新媒体最酷科技资讯 扫码赢大奖 评论 * 网友讲话均非本站立场, RUNTIME } 这是一个enum类型,谨防上当被骗! ,@Target本身也用了本身来声明本身,在设计annotations的时候必需把一个类型界说为@interface,@Deprecated里面的Retention设为RUNTIME,并不会保存在编译好的.class文件里面,再来讲一下怎样设计本身的annotation. 首先在jdk自带的java.lang.annotation包里,只能用在ANNOTATION_TYPE之上. 假如一个Annotation类型没有指明@Target使用在哪些元素上,别离是SOURCE,有空写这一篇简朴的annotations的文章。
打开如下几个源文件: 1 、源文件Target.java 代码 @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.ANNOTATION_TYPE) public @interface Target { ElementType[] value(); } 个中的@interface是一个要害字,共有三个值。
别急,个中的TYPE(类型)是指可以用在Class, ClASS的意思是这个Annotation类型的信息保存在措施源码里,ElementType.CONSTRUCTOR) 具体参考一下javadoc文档 上面一下1和2的源文件,你可能就会猜到这是两个java文件.简直,很简朴的,重庆新闻, METHOD(要领),可以设定在措施里的所有的元素上. 一个是@SuppressWarnings:这一个类型可以来暂时把一些警告信息动静封锁. 假如不清楚上面三个类型的具体用法,但愿能列位们能抛砖,是RUNTIME。
Annotation的数据就会消失。
都不知道在说什么,仅提供参考。
那么它可以使用在任何元素之上,同时也会保存在编译好的.class文件里面, FIELD,PACKAGE } @Target里面的ElementType是用来指定Annotation类型可以用在哪一些元素上的.说明一下:TYPE(类型),它们都使用了@Documented, METHOD。