当前位置: 首页 > news >正文

宁波外贸网站制作人大常委会委员长

宁波外贸网站制作,人大常委会委员长,做外贸网站应该关注哪些地方,163企业邮箱登录Apt 介绍 APT(Annotation Processing Tool)是一种处理注释的工具,它对源代码文件进行检测找出其中的 Annotation,根据注解自动生成代码。 Annotation 处理器在处理 Annotation 时可以根据源文件中的 Annotation 生成额外的源文件和其它的文件(文件具体内容由 Annot…

Apt 介绍

APT(Annotation Processing Tool)是一种处理注释的工具,它对源代码文件进行检测找出其中的 Annotation,根据注解自动生成代码。 Annotation 处理器在处理 Annotation 时可以根据源文件中的 Annotation 生成额外的源文件和其它的文件(文件具体内容由 Annotation 处理器的编写者决定),APT 还会编译生成的源文件和原来的源文件,将它们一起生成 class 文件。我们 Android 常用的库如 Dagger2, ButterKnife, EventBus3 等都使用了 APT 的技术。

本篇通过一个简单的 Android 路由的项目来介绍 APT 相关内容和进行 APT 开发的大致流程。

使用 APT 开

发自动生成路由表的库

首先我们创建一个名字为 route-annotation 的 module,定义 APT 需要处理的注解。

  • 在创建一个名字为 route-compiler 的 module 实现一个注解处理器。

  • @SupportedAnnotationTypes 表示我们需要处理哪些注解

  • @SupportedSourceVersion 表示我们生成的代码是 Java 的哪个版本

  • 类会封装成 TypeElement

  • 方法会被封装成 ExecuteableElement

  • 字段会被封装成 VariableElement

  • element.getEnclosingElement();// 获取父元素

  • element.getEnclosedElements();// 获取子元素

在 module 对应的 build.gradle 里添加一下依赖

下面就来创建我们的处理器 RouteProcessor

我们需要创建一个名为 RouteProcessor 的类继承 AbstractProcessor,并添加三个注解 @AutoService@SupportedAnnotationTypes@SupportedSourceVersion

然后我们一般需要重写 AbstractProcessor 的两个方法 init(ProcessingEnvironment processingEnv)process(Set<? extends TypeElement> set, RoundEnvironment roundEnvironment),通过 init 方法的 processingEnv 我们可以得到一些辅助类, 通过 process 的 roundEnvironment 我们可以得到被注解对象(Element)的集合,相关代码如下

这里介绍下 Element 的概念, 注解处理器会把我们注解的方法、字段、类等等封装成一个 Elment 的对象,

然后我们可能通过这个对象获取被注解对象的信息(如方法的参数和返回值、字段的类型和名字等等),并且这些 Element 元素还相当于 XML 中的 DOM 树,通过相关方法可以访问它的父元素或者子元素。

如下面这段代码,通过 Element 获取需要的信息

我们通过注解对象的信息用 javapoet 这个库来生成相关的代码

  • 最后我在需要是用 route 的 module 使用我们上面写好的库

在 build.gradle 增加相关依赖

在需要的被路由的 Activity 声明 @Route 的注解

  • Make Project 一下就能在 build/generated/source/apt/debug 下面看到生成的类了

http://www.hotlads.com/news/4209.html

相关文章:

  • 舟山网站建设公司seo关键词推广公司
  • 建站公司可靠吗广州百度竞价托管
  • 网站推广的手段通州区网站快速排名方案
  • 网站公安备案是必须的吗域名大全
  • 酒店网站建设百度竞价点击一次多少钱
  • 如何做商城网站惠州抖音seo
  • 区网站建设在线bt种子
  • 漯河网站建设服务公司企业网站优化的三层含义
  • 网站加载等待如何看待百度竞价排名
  • 上海搬家公司报价怎样给自己的网站做优化
  • 章丘网站建设哪家好怎么自己刷推广链接
  • 做网站推广托管费用网站内容编辑
  • 天津做公司网站软件开发app制作公司
  • 松江做网站高端营销型网站制作
  • 网站建设中404什么意思站长工具查询seo
  • 建筑中级职称查询网站精准营销通俗来说是什么
  • 网站建设中的思想和算法优惠活动推广文案
  • 成都网站建设爱特通制作公司官网多少钱
  • 河北网站建设模板360推广
  • 重庆网站建设百度推广seo常用的优化工具
  • 做外贸网站价位在线培训网站
  • 杭州有做网站汕头网站建设方案维护
  • 自己怎么做外贸英文网站百度销售是做什么
  • hui怎么做网站站长号
  • 大众网泰安疫情最新消息seo搜索优化待遇
  • 山东网站建设网搜一搜百度
  • 建筑网图片宁波seo外包优化
  • 定陶菏泽网站建设百度智能云官网
  • 阜阳制作网站公司抖音seo源码搭建
  • 汕头模板建站流程关键词优化按天计费