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

免费com域名网站初创品牌网站建设

免费com域名网站,初创品牌网站建设,给人做ppt的网站吗,海北公司网站建设多少钱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.yayakq.cn/news/132676/

相关文章:

  • linux做网站网络课堂wordpress 程序员主题
  • 网店设计实训报告产品网站别人是如何做优化的
  • 网站推广营销效果做蛋糕的网站
  • 网站优化 前端怎么做有网站源代码能自己做网站吗
  • 怎么查询网站有没有做网站地图快速建站完整版
  • 湛江做网站建设wordpress简洁淘宝客免费主题
  • 做网站开发挣钱吗做职业资格考试的网站有哪些
  • 建立网站的链接结构有哪几种形式数字化转型
  • 网站建设方案 预算网站建设售后服务费包括哪些
  • 厦门网站搭建撰写网站的建设方案
  • 用word做网站功能结构图怎么判断网站是否被收录
  • 室内设计网站平面案例国外免费可以做网站的服务器
  • 单位网站建设服务浏阳seo公司
  • 网站备案查询官网入口查询wordpress建设中
  • 网站小图标什么平台能推广项目
  • 做网站用asp还是php如何把网站做成软件
  • 网站被k 原因唐山网站建设方案书
  • 做网站标签栏的图片大小做家具有那个网站好
  • 慈溪开发小学网站建设谷歌官方网站注册
  • 南京学习做网站上海网站建设科技公司
  • 哪个网站做淘宝客最合适杭州微跑网站建设公司
  • 网站建设有利点在拼多多开网店的流程
  • 大连网站建设哪个公司好企业信用信息公示系统山西
  • 个人网站介绍模板下载科学小制作 小发明 简单 手工
  • 漳州微信网站开发做网站那个php好用
  • 定制制作网站开发wordpress获取首页id
  • 网站建设培训厦门农业信息网站建设
  • 古典asp网站源码中山网站建设排名
  • 校园网站建设案例万网x5 wordpress
  • 成品超市网站美橙专业建站