0%

再看java注解

最初学习注解的时候,很多地方没弄明白,在对java本身和一些框架有了一些更深的认识之后,回过头再巩固一下。

定义

注解可以在编译、运行期间为编译器、JVM提供一些信息,目的是让程序借助这些信息完成一些特定功能

分类

编译过程使用

  • 编译结束后丢弃

  • 栗子

    • @Override
    • @SuppressWarnings
    • @Deprecated
    • @AllArgsConstructor

其它工具使用

  • 保存在class文件中

  • 栗子

    • ???

运行期间使用

  • 存在于JVM中

  • 栗子

    • @PostMapping
    • @GetMapping
    • @Component

自定义注解

元注解

  • @Target

    • TYPE
    • FIELD
    • METHOD
    • PARAMETER
  • @Retention

    • SOURCE
    • CLASS
    • RUNTIME

使用

注解仅仅是提供一些信息,如何利用这些信息需要程序员来决定。具体过程大概是先判断注解是否存在,然后读取注解提供的内容信息,再添加相应的逻辑。

判断某个注解是否存在

  • Class.isAnnotationPresent(Class)
  • Field.isAnnotationPresent(Class)
  • Method.isAnnotationPresent(Class)
  • Constructor.isAnnotationPresent(Class)

使用反射API读取Annotation

  • Class.getAnnotation(Class)
  • Field.getAnnotation(Class)
  • Method.getAnnotation(Class)
  • Constructor.getAnnotation(Class)

思维导图