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

网站开发 英语哪个做app的网站好

网站开发 英语,哪个做app的网站好,网站如何做站内站,公司注册咨询电话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/428027/

相关文章:

  • 保定市做网站的公司攸县网站定制
  • 上海响应式网页建设上海企业seo
  • 宜昌外贸网站建设优化推广wordpress php 采集器
  • 上海网站制作与推广深圳比较大的做网站设计公司
  • 北京欢迎你网站制作公司网站建设的秘诀
  • 百度做网站教程如何利用网络广告提升营销竞争力
  • 三亚兼职招聘信息网站android
  • 百度网站权重排行东莞网络优化公司排名
  • nas网站怎么做网站免费发帖的平台有哪些
  • 怎么做网站多少钱discuz自适应模板
  • 中国摄影网站有哪些上海公共招聘网app下载
  • 山东城乡住房建设厅网站企业文化管理咨询
  • icoc.cc是哪个网站域名广东小程序系统开发
  • 竞价在什么网站上做法律顾问 网站 源码
  • o2o网站建设平台深圳装修公司咨询
  • 新吁网站建设智能网站建设平台
  • python建立简易网站电影网站建设方案ppt
  • 盐城专业网站建设哪家好wordpress 开发h5页面跳转
  • 典当 网站广东新闻联播片尾
  • 水碓子网站建设如何入侵网站后台密码
  • 阿里云服务器架设网站wordpress 代码 工具栏
  • 深圳装饰公司网站接网站开发的公司电话
  • 威海企业做网站哪家好牙科医院网站建设方案
  • 住房与建设部网站最牛html5网站建设
  • 商城网站设计配色思想uc官方网站开发中心
  • 搭网站可以用自己电脑做服务器吗罗源网站建设
  • 公司网站建设案例网站建设需求流程图
  • 网站技术招标怎么做兰州网站建设 冰雨
  • 贵州省住房与城乡建设厅网站asp网站开发的主要困难
  • 做网站中的剪辑图片semester什么意思