这是我参与「第四届青训营 」笔记创作活动的第31天
retrofit使用的简单介绍
Retrofit可以将网络请求转换为Java的接口 如:
这个函数意味着,将使用GET请求,在基础网址后加上“users/{user}/repos”,其中{user}将会被整体替换为接口函数中的user变量 随后:
创建网络请求执行客户端,添加基础URL。并使用客户端自动创建出接口的实现类。对底层okhttp的调用将会在这个阶段完成
(需要替换)
调用实现类中先前设定好的接口方法,即可以同步或异步的方式取得回调
此外,Retrofit还使用多种注解满足网络请求中所需的多种功能——例如添加网址查询所需参数,用于替换Url路径中的变量字符,添加请求头等等
可见,retrofit中大量使用了注解进行处理。 由此,我们可以看到注解的优越性。正是在于提高代码可读性,简化重复代码量。 阅读oracle的官方文档可知。 注解可以应用在类、字段、方法,类型,跑出异常和其他程序元素的声明中,并且原则上占据独立的一行 java中已经内置了几个常用注解,kotlin也继承了这点。 例如, @Override代表着这个方法将会覆盖超类方法; @Deprecated表示标记的元素已被弃用,不应再使用。每当程序使用带有此注释的方法、类或字段时,编译器都会生成警告; @SuppressWarnings告诉编译器抑制它会生成的特定警告。这通常较为不推荐使用。
根据官方文档,注解通常被用以作以下目的:
- 1、编译器指令
- 2、构建时指令
- 3、运行时指令
当注解应用于构建时,例如: 产生源代码;编译源代码;产生xml文件;将编译过的代码或者文件打包进jar文件;通常情况下,注解不会出现在编译之后的Java代码中。 Java也支持运行时注解。这些注解可以通过java反射访问。在java.lang.reflect包存在着一系列与获取注解相关的函数,如图。
而retrofit中对注解的使用,正是在运行期间,配合java动态代理处理逐渐,并构造相应对象的