Java注解简介

来源:互联网 发布:数据分析与数据挖掘pdf 编辑:程序博客网 时间:2024/05/12 19:08

Java开发中我们常常用到注解,有的是原有的,比如:@Override;
有的是一些框架提供的,比如:@Get,@Bind;
你可曾想过,注解是什么?有什么用?怎么生成的?为什么能起作用?
如果要自定义一个注解,又该怎么做?
这一连串的问题,摆在我们面前,有着强烈好奇心和求知欲的你,肯定想知道注解背后的故事,那么注解到底隐藏着哪些秘密呢???
那么请接着看。。。。。。。。。。
对于以上问题,事实上我也不太清楚,别激动,不要打人。。。。
今天呢,也只是扫扫盲,太深入的咱不研究啊(妈的,好难):
1,什么是注解???
字面意思:注释,解释;
对,没错,可以这么理解,不过毕竟是中文的叫法,未必贴切,暂且叫之;
在java中有四个元注解(就是最基础最原始的注解,其他注解都是由他们生成的)
1.@Target,
2.@Retention,
3.@Documented,
4.@Inherited
以@Override为例:

/** * Annotation type used to mark methods that override a method declaration in a * superclass. Compilers produce an error if a method annotated with @Override * does not actually override a method in a superclass. * * @since 1.5 */@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public @interface Override {}

@Target:标识注解的范围,可以理解为空间限定
取值(ElementType)有:

    1.CONSTRUCTOR:用于描述构造器
    2.FIELD:用于描述域
    3.LOCAL_VARIABLE:用于描述局部变量
    4.METHOD:用于描述方法
    5.PACKAGE:用于描述包
    6.PARAMETER:用于描述参数
    7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
@Retention:表示注解被保留的时间长短,可以理解我时间上的限定
 取值(RetentionPoicy)有:

    1.SOURCE:在源文件中有效(即源文件保留)
    2.CLASS:在class文件中有效(即class保留)
    3.RUNTIME:在运行时有效(即运行时保留)
@Documented:表示该注解是否生成在javadoc文档中
@Inherited:表示这个注解是否可以被继承;

=================我是分割线===========================
待续

0 0
原创粉丝点击