• Java core——注解详解


    注解就是描述数据的数据,它可以对一个类,或者一个字段,方法等进行描述。

    我个人使用的理解,annotation是一种在类、类型、属性、参数、局部变量、方法、构造方法、包、annotation本身等上面的一个附属品(ElementType这个枚举中有阐述),他依赖于这些元素而存在,他本身并没有任何作用,annotation的作用是根据其附属在这些对象上,根据外部程序解析引起了他的作用。比如在spring使用注解开发的时候,我们将mvc三层结构所属的类分别用@Controller, @Service, @Repository注解,可以起到一个分类的作用。我们对标这个注解的一类数据去做什么事,那一类的注解做另外什么事。

    JDK1.5引入注解(java.lang.annotation包)用一个词就可以描述注解,那就是元数据,即一种描述数据的数据。所以,可以说注解就是源代码的元数据。注解Annotations仅仅是元数据,和业务逻辑无关。业务逻辑可以通过反射,获得注解中的数据

    元注解(描述注解的注解)

    @Documented一个简单的Annotations标记注解,表示是否将注解信息添加在java文档中。

    @Retention– 定义该注解的生命周期。

    RetentionPolicy.SOURCE – 在编译阶段丢弃。这些注解在编译结束之后就不再有任何意义,所以它们不会写入字节码。@Override, @SuppressWarnings都属于这类注解。

    RetentionPolicy.CLASS – 在类加载的时候丢弃。在字节码文件的处理中有用。注解默认使用这种方式。

    RetentionPolicy.RUNTIME– 始终不会丢弃,运行期也保留该注解,因此可以使用反射机制读取该注解的信息。我们自定义的注解通常使用这种方式。

    @Target – 表示该注解用于什么地方。如果不明确指出,该注解可以放在任何地方。以下是一些可用的参数。

    ElementType.CONSTRUCTOR(构造方法声明),FIELD(字段声明),LOCAL VARIABLE(局部变量声明),METHOD(方法声明),PACKAGE(包声明),PARAMETER(参数声明),TYPE(类接口),ANNOTATION_TYPE (另一个注释,元注解中用到)

    @Inherited – 定义该注释和子类的关系

    Annotations只支持基本类型、String、枚举、class类型。注释中所有的属性被定义成类似方法的样子,并允许提供默认值。

  • 相关阅读:
    突破界限的力量:探索Facebook如何打破国界、文化和语言的障碍
    前端性能优化
    庆阳市宁县副县长李晓刚一行调研珈和科技
    Vue - 修改 data 数据不变 / 视图也不变(监测不到 data 数据变化 / 双向绑定失效)
    0.Linux环境搭建
    代码大全2读书笔记【6-8章】
    java毕业生设计校园食堂订餐系统计算机源码+系统+mysql+调试部署+lw
    【云原生持续交付和自动化测试】5.2 自动化测试和集成测试
    [管理与领导-106]:IT人看清职场中的隐性规则 - 3 - 职场面具是虚伪吗?
    MongoDB中ObjectId获取时间
  • 原文地址:https://blog.csdn.net/weixin_41186611/article/details/126068741