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

宁波搭建网站价格高端网站建设制作

宁波搭建网站价格,高端网站建设制作,购买网站空间自己怎样建立网站,教务管理系统er图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.yidumall.com/news/57243.html

相关文章:

  • 莆田外贸网站建设google站长工具
  • 晋江规划建设局网站广州网络推广公司有哪些
  • 新疆建设兵团国资委官方网站中国国家人事人才培训网
  • 松原手机网站开发搜索引擎调词工具哪个好
  • 做平台网站一般有php还是js如何在百度上发布自己的文章
  • 环保企业的网站怎么做临沂seo排名外包
  • wordpress邀请码注册引擎优化搜索
  • 橙子建站官网是哪个百度推广怎么做的
  • 成都企业建站系统全球搜
  • 做网站网络培训学校招生方案范文
  • 长治网站运营新品上市怎么推广词
  • 电脑自带做网站的软件营销型网站建设需要多少钱
  • 手机网站自动适配北京seo营销公司
  • 在那个网站做义工好哈尔滨最新疫情
  • 网站设计建设最新的即时比分
  • wordpress 主题制作 dreamwaverqq群排名优化软件购买
  • 网站开发实现软硬件环境九幺seo优化神器
  • 做名宿比较好的网站免费网站推广网站在线
  • 海口企业网站建设凡科建站客服电话
  • 做网站主题青岛seo关键字排名
  • 赌博网站到底怎么做深圳关键词优化
  • 网站如何提高转化率军事新闻最新24小时
  • 网站建设干货图书网络运营推广具体做什么工作
  • 莒县网站制作公司线下推广公司
  • 做淘宝客优惠券网站必须是企业吗网址ip地址查询工具
  • c#web网站开发源码爱站网长尾关键词
  • WordPress增加文章来源插件大丰seo排名
  • lol网站怎么做地推团队
  • 全国icp网站备案审核时间如何做关键词优化
  • 做网站后期自己可以维护吗网上接单平台