`

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”的错误,这通常意味着运行时环境无法找到特定的类,即`org.aspectj.lang.annotation.Around`。...

    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"这个错误提示表明在尝试加载`javax.annotation.ParametersAreNonnullByDefault`类时失败。这个特定的注解是JSR 305的...

    API规范JAVA.pdf

    * java.lang.annotation 是 Java 2 Platform 的一部分,提供了 Java 编程语言注释设施的库支持。 16、代理检测:java.lang.instrument 提供允许 Java 编程语言代理检测运行在 JVM 上的程序的服务。 * java.lang....

    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核心API

    Java.lang.annotation包自J2SE5起引入,支持注释(元数据),增强了代码的可读性和扩展性。 #### Java.lang.instrument Java.lang.instrument包支持程序插装技术,允许开发者在运行时动态修改字节码,从而实现性能...

    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.API文档中文版

    注解(`java.lang.annotation`)是元数据的一种形式,用于向编译器或JVM提供信息,以实现代码的自描述。 7. **国际化与本地化**:`java.text`和`java.util.locale`包支持国际化和本地化,帮助开发者构建能够适应不同...

    JAVA_API1.6文档(中文)

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

    annotation

    import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD, ElementType.PARAMETER}) public @interface NonNull { } ...

    Java动态代理自建注解

    import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.METHOD) // 表示该...

    1_6_zh_CN.CHM

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

    JAVA-API.rar_Java api文档_java api

    例如,`java.lang.annotation`包提供了元注解,用于定义注解。 4. **异常和错误**:Java中的异常处理机制是通过`Exception`和`Error`类来实现的,这些类在`java.lang.Throwable`下。例如,`IOException`是所有I/O...

Global site tag (gtag.js) - Google Analytics