主要有四种的标准的meta-annotation,都在java.lang.annotation的package中...
1.@Target指定那个程序单元可以有其所定义的annotation
(程序单元:class.interface,enum,field,method,parameter,constructor,variable package,annotation。参看ElementType类)
需要import(java.lang.annotation.ElementType;java.lang.annotation.Target;)两个类
引用
//只能用于TYPE和METHOD的程序单元
@Target({ElementType.TYPE,ElementType.METHOD})
public @interface MyAnnotation {}
//只能用于自己
@Target({ElementType.ANNOTATION_TYPE})
public @interface MyAnnotation {}
//适用于所有,不要定义Targer
public @interface MyAnnotation {}
2.@Retention告诉Java编译器如何对待annotation,有三种情况(参见RetentionPolicy类)
需要import(java.lang.annotation.Retention;java.lang.annotation.RetentionPolicy;)两个类
SOURCE:Annotation会被编译器丢弃,如SuppressWarnings这个annotation
CLASS:保留在class的文件中,但会被VM忽略,默认的annotation
RUNTIME:保留在class的文件中且由VM读取
引用
@Retention(RetentionPolicy.CLASS)
public @interface MyAnnotation {}
3.@Documented定义annotation是否被视为注释在JavaDoc出现
需要import(java.lang.annotation.Documented)这个类
引用
@Documented
@Retention(RetentionPolicy.RUNTIME)
//使用@Documented就必须使用@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {}
4.@Inherited,继承父类的annotation,仅仅用在subclass,且superclass的annotation全部继承下来。
需要import(java.lang.annotation.Inherited)这个类
引用
@Inherited
public @interface MyAnnotation {}
@MyAnnotation
public class Anno {
}
//SubAnno 会把Anno 的annotation继承下来
public class SubAnno extends Anno {
}
当然,如果子类的方法的覆盖父类带有annotation的方法是,改annotation是不会被继承的。
可以通过JavaDoc看效果...
关于Reflenting,annotation的自我减产工具,判断某个类具有什么也的annotation
如:判断时候是MyAnnotation类型的annotation)
引用
Class c = SubAnno.class;
System.out.println(c.isAnnotationPresent(MyAnnotation.class));
还要学习AnnotatedElement类...
分享到:
相关推荐
jquery.annotate.js包 为图片添加注释
Annotate - 注释Rails类模式和路由信息
前端开源库-ng-annotate-loaderng annotate loader,在捆绑包上运行ng annotate的Webpack loader
redis 3.0 目录结构说明!!!!!!!!!!!!!!!!!!!!
在altium designer画完PCB后,总喜欢从新排下元件的序号,改完后要在原理图同步更新,在protel99se下,直接使用back annotate即可以改变原理图的标号;但在ad6下,发现不起作用,反复操作几次,发现器件都对应不上了...
前端开源库-astral-angular-annotate星体角注释,星体的AngularJS DI注释传递
官方版本,亲测可用
pdf-annotate.js 注释层。 合并后的分支和已删除的DynamicEnvironmentSystems / pdf-annotate.js的分支。 下内使用积极发展 。 要报告pdf-annotate.js的问题,请将其提交到存储库下。 目标 为提供一个低层注释层...
主要介绍了django ORM之values和annotate使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
名称:Annotate Web Annotations with S ---------------------------------------- 版本:8.26 作者:https://annotate.net/ 分类:实用工具 ---------------------------------------- ...在您的远程学习和GoogleMeet
前端开源库-ng-annotate-webpack-pluginng annotate webpack plugin,在捆绑包上运行ng annotate的webpack plugin
通过在annotate.tech创建一个免费帐户,用户可以将所有保存的注释全部取出。 在不创建帐户的情况下,注释仍然保存在页面级别的浏览器中。 除了大量的预设建议之外,用户还可以添加,编辑和删除建议。这使用户能够...
Annotate page addon.
pdf-annotate是一个简单的库,用于将PDF注释添加到PDF。 在后台,它使用功能强大且不受限制的pdfrw库来解析PDF,以找出放置注释的位置。 用法 from pdf_annotate import PdfAnnotator , Location , Appearance a = ...
主要介绍了django的聚合函数和aggregate、annotate方法使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
添加存储库后,选择“ Package Control: Install Package ”,然后从列表中选择“ annotate-subl ”。 安装后,Sublime 会提示你使用 Genius 授权 annotate-subl。 买者自负! 当前奇怪的模因: 现在 annotate-subl...
$ npm install --save-dev gulp-ng-annotate 用法 var gulp = require ( 'gulp' ) ; var ngAnnotate = require ( 'gulp-ng-annotate' ) ; gulp . task ( 'default' , function ( ) { return gulp . src ( 'src/app....
已弃用请注意, 现在支持在 .ng.js-files ( ) 上运行 ng-annotate 所以我将在该软件包上线后立即删除该软件包。流星-ng-注释在 angular 源上运行 ng-annotate 以简化 Meteor 上的 Angularjs 开发。需要重命名js文件...
webpack 的加载器 用法 require ( 'ng-annotate!./file.js' ) ; 推荐配置 { module : { loaders : [ { test : / \. js $ / , loader : 'ng-annotate' } ] } } 执照 麻省理工学院( )