`

java.lang.annotation

阅读更多
java注解篇。
注解和注释的作用和使用场景有相似之处,但究其作用和使用场景的差异相去甚远。
基础内容请参考其他资料。
本文重在分析注解相关的api
java提供的注解工程支持包在:java.lang.annotation

1、Target :标识注解可以标识的位置(类、方法、成员等)。 note:其值类为ElementType枚举数组。
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
    ElementType[] value();
}


public enum ElementType {
    /** Class, interface (including annotation type), or enum declaration */
    TYPE,
   ...
}


2、Retention:标识注解存留的阶段,这主要是对应了注解对java从开发到运行的各个阶段。
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
    RetentionPolicy value();
}

具体请参考:RetentionPolicy 的枚举值。
SOURCE:源码级别。对代码开发时有提醒作用。比如:SuppressWarnings
CLASS:保留到class文件阶段。对生成的字节码文件做处理。
RUNTIME:运行时阶段。运行时可以获取注解的信息。

3、Inherited :标识注解是否可以被继承。
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Inherited {
}
note:如果注解标识在接口中的方法上,那么实现类的方法注解解析是获取不到的,但是如果接口中的方法标识了Inherited ,那么将能够获取。

4、Annotation 注解的内置高层接口。
就像Object类之于 普通的class定义的类一样。

note:注解一般用在运行时的解析,来获取注解的逻辑,所以和java的反射支持紧密相关,请参考java反射功能的文章
分享到:
评论

相关推荐

    org.aspectj.lang.annotation.Around所需要的包

    java错误-java.lang.ClassNotFoundException: org.aspectj.lang.annotation.Around Spring的AOP需要上述三个jar包

    java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingExcepti

    jackson-annotations-2.10.2.jar jackson-core-2.10.2.jar jackson-databind-2.10.2.jar NoClassDefFoundError解决

    JAVA API官方中文版手册chm文件文档

    JAVA API官方文档中文版软件包 java.applet java.awt java.awt.color java.awt.datatransfer java.awt.dnd ...java.lang.annotation java.lang.instrument java.lang.management java.lang.ref

    javax.annotation

    java.lang.ClassNotFoundException: javax.annotation.ParametersAreNonnullByDefault

    Javase-6.0_中文API_HTML(最新更新)

    javax.annotation.processing javax.crypto javax.crypto.interfaces javax.crypto.spec javax.imageio javax.imageio.event javax.imageio.metadata javax.imageio.plugins.bmp javax.imageio.plugins.jpeg...

    jdk 中文版

    javax.annotation.processing javax.crypto javax.crypto.interfaces javax.crypto.spec javax.imageio javax.imageio.event javax.imageio.metadata javax.imageio.plugins.bmp javax.imageio.plugins.jpeg...

    java SE API

    java.lang.annotation java.lang.instrument java.lang.management java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi java.nio.charset java.nio....

    spring4.0 API

    org.springframework.core.annotation.AnnotationAttributes org.springframework.core.annotation.AnnotatedElementUtils org.springframework.core.annotation.AnnotationUtils org.springframework.core....

    JAVA_API1.6文档(中文)

    javax.xml.bind.annotation.adapters XmlAdapter 及其规范定义的子类允许任意 Java 类与 JAXB 一起使用。 javax.xml.bind.attachment 此包由基于 MIME 的包处理器实现,该处理器能够解释并创建基于 MIME 的包格式的...

    1_6_zh_CN.CHM

    java.lang.annotation 为 Java 编程语言注释设施提供库支持。 java.lang.instrument 提供允许 Java 编程语言代理检测运行在 JVM 上的程序的服务。 java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机...

    利用AOP来变更工作线程的名字,来快速过滤出一次请求的所有日志.docx

    import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.springframework....

    JDK_API_1_6_zh_CN_downcc.com.zip 良心一级分

    java.lang.annotation 为 Java 编程语言注释设施提供库支持。 java.lang.instrument 提供允许 Java 编程语言代理检测运行在 JVM 上的程序的服务。 java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机...

    实战篇:设计自己的Annotation

    实战篇:设计自己的Annotation

    JavaSE-6.0-英文手册(2008/11/30_FullUpdate)

    javax.xml.bind.annotation.adapters javax.xml.bind.attachment javax.xml.bind.helpers javax.xml.bind.util javax.xml.crypto javax.xml.crypto.dom javax.xml.crypto.dsig javax.xml.crypto.dsig.dom ...

    Java 1.6 API 中文 New

    javax.xml.bind.annotation.adapters XmlAdapter 及其规范定义的子类允许任意 Java 类与 JAXB 一起使用。 javax.xml.bind.attachment 此包由基于 MIME 的包处理器实现,该处理器能够解释并创建基于 MIME 的包格式的...

    Java 高级特性.doc

    import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target({ElementType.TYPE}) //用于构造方法 @Retention(RetentionPolicy.RUNTIME) //在运行是加载Annotation到JVM中 public @...

    spring-web-2.5.jar

    org.springframework.web.bind.annotation.SessionAttributes.class org.springframework.web.bind.support.ConfigurableWebBindingInitializer.class org.springframework.web.bind.support....

    [Java参考文档].JDK_API 1.6

    javax.xml.bind.annotation.adapters XmlAdapter 及其规范定义的子类允许任意 Java 类与 JAXB 一起使用。 javax.xml.bind.attachment 此包由基于 MIME 的包处理器实现,该处理器能够解释并创建基于 MIME 的包格式的...

    java jdk-api-1.6 中文 chmd

    java.lang.annotation 为 Java 编程语言注释设施提供库支持。 java.lang.instrument 提供允许 Java 编程语言代理检测运行在 JVM 上的程序的服务。 java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机...

Global site tag (gtag.js) - Google Analytics