美文网首页
如何自定义注解处理器

如何自定义注解处理器

作者: caspar51688 | 来源:发表于2021-05-04 18:35 被阅读0次

简介

注解处理器(Annotation Processor)是javac的一个工具,不管是运行时注解还是编译时注解,都会通过处理器在编译时进行扫描和处理注解。

自定义处理器

1、在Androidstudio中创建一个Java Library Module(注解处理器需要javax包的支持,Android环境下是访问不到javax包的,同时注解处理器要被打包进jar包里面才能被系统识别,这就是选用ava Library的原因,目前注解注解框架均是如此。)

2、定义一个注解


image.png

3、 继承虚处理器AbstractProcessor


image.png
  • init(ProcessingEnvironment processingEnvironment):
    每一个注解处理器类都必须有一个空的构造函数。然而,这里有一个特殊的init()方法,它会被注解处理工具调用,并输入ProcessingEnviroment参数。ProcessingEnviroment提供很多有用的工具类Elements, Types和Filer。后面我们将看到详细的内容。
  • process(Set<? extends TypeElement> annotations, RoundEnvironment env):
    这相当于每个处理器的主函数main()。扫描、评估和处理注解的代码,以及生成Java文件。输入参数RoundEnviroment,可以让你查询出包含特定注解的被注解元素。后面我们将看到详细的内容。
  • getSupportedAnnotationTypes():
    这里你必须指定,这个注解处理器是注册给哪个注解的。注意,它的返回值是一个字符串的集合,包含本处理器想要处理的注解类型的合法全称。换句话说,你在这里定义你的注解处理器注册到哪些注解上。
  • getSupportedSourceVersion():
    用来指定你使用的Java版本。通常这里返回SourceVersion.latestSupported()。然而,如果你有足够的理由只支持Java 6的话,你也可以返回SourceVersion.RELEASE_6。我推荐你使用前者。
image.png

上图为在process方法中使用javapoet自动生成java类

4、注册处理器

  • 注册方式一:手动注册
    在使用注解处理器需要先声明,步骤:
    • 需要在 processors 库的 main 目录下新建 resources 资源文件夹;
    • 在 resources文件夹下建立 META-INF/services 目录文件


      image.png

在文件java.lang.Process中增加注册器路径名:
com.lsm.processor.JsonProcessor

  • 方式二:自动注册
    google提供了一个注册处理器的库AutoService。帮助将要编译的处理器进行编译。
    compile ‘com.google.auto.service:auto-service:1.0-rc4’


    image.png
    image.png

至此自定义注解处理器完成。

5、使用自定义注解处理器
将processor编译出的jar包拷贝到项目中


image.png image.png

在工程的build.gradle中增加使用的处理器:


image.png

相关文章

  • Java注解知识梳理—自定义注解处理器

    Java注解知识梳理—自定义注解处理器 前言 前面介绍了如何自定义注解以及Java中关于注解的一些元素作用,学会了...

  • Annotation Processor(注解处理器)详解

    前言 注解处理器 自定义处理器 前言 Java中的注解(Annotation)如果要被识别,离不开注解处理器。所以...

  • 注解学习笔记

    什么是注解注解分类注解作用分类 元注解 Java内置注解 自定义注解自定义注解实现及使用编译时注解注解处理器注解处...

  • 自定义Java注解处理器

    本文介绍了如何自定义Java注解处理器及涉及到的相关知识,看完本文可以很轻松看懂并理解各大开源框架的注解处理器的应...

  • 自定义Java注解处理器

    本文介绍了如何自定义Java注解处理器及涉及到的相关知识,看完本文可以很轻松看懂并理解各大开源框架的注解处理器的应...

  • @lombok注解背后的原理是什么,让我们走近自定义Java注解

    本文介绍了如何自定义Java注解处理器及涉及到的相关知识,看完本文可以很轻松看懂并理解各大开源框架的注解处理器的应...

  • 注解与APT注解处理器技术详解

    知识点汇总: 一:什么是注解 二:注解处理器概述 三:注解处理器核心类解析 四:如何调试注解处理器 五:通过注解处...

  • 如何优雅地处理switch-case

    使用注解和多态。 思路:将自定义注解打在相应的处理器上,在Service类初始化时,自动扫描打了响应注解的处理器类...

  • hibernate Validator自定义注解

    如何自定义注解,加入自己的校验逻辑 自定义注解 自定义注解校验类

  • Java 元注解

    学习Android APT需要我们具备自定义注解以及注解处理器的相关知识,这里简单介绍下Java元注解。注解是在J...

网友评论

      本文标题:如何自定义注解处理器

      本文链接:https://www.haomeiwen.com/subject/uyrcdltx.html