1、开始使用这个包时候不习惯,觉得api用起来很别扭,不管是Request okhttpClient formBody只要是设置啥,就必须使用类里面的Builder类,然后一个方法接受一个参数,不停地调用每一个方法来接受一个参数进行属性设置,之前的py requests都是一个方法接受完各种参数就了事了。

2、OkHttpClient类两个构造方法。默认构造方法调用下面的有参构造方法,可以传一个构造好的Builder的实例到OkHttpClient类进行实例化。

但一般是OkHttpClient.Builder().funa(xx).funb(yy).func(zz).build()的方式来得到一个OkHttpClient.类型的实例。

Builder类是OkHttpClient类里面的一个静态类,所以才能用OkHttpClient.Builder()这种方式,然后就是用Bulider类里面的方法进行各种设置了。能连续的进行.funa(xx).funb(yy).func(zz)这种链式操作,是他在设置属性后,还返回了自身(this)。进行了OkHttpClient.Builder().funa(xx).funb(yy).func(zz)这一系列操作后得到的是一个Bulider类的实例,这还不是OkHttpClient类的实例。最后执行builder实例的buid()方法,把自身传到OkHttpClient的构造方法了,这才得到的是OkHttpClient的实例。

3、okhttp这个包里面的各个类基本都是有个类中类Builder,然后调用Bulider的各种方法进行设置,最后执行build,把builder实例自身传到Builder的上级类的构造方法。只有大致搞清楚了才能好好的调用他的api,不然会不知道到了哪一步得到的是什么类型的实例了,和为什么可以连续链式操作。

Bulider类

转载于:https://www.cnblogs.com/ydf0509/p/8669733.html

java okhttp包的类特点相关推荐

  1. 【JDK源码】java.lang包常用类详解

    接下来的几天开始JDK源码的学习和总结,之前看<java编程思想>的时候看到java的基础知识有很多,其中支撑着这些基础的基础中的基础当属JDK.JDK的基础代码里面又分了很多基础的模块, ...

  2. Java中包、类、方法、属性、常量的命名规则

    1:包(package):用于将完成不同功能的类分门别类,放在不同的目录(包)下, 包的命名规则:对于包名:每个字母都需要小写. 将公司域名反转作为包名.比如www.baidu.com 比如:com. ...

  3. JAVA——Okhttp封装工具类

    基本概念 OKhttp:一个处理网络请求的开源项目,是安卓端最火热的轻量级框架. Maven <!--OK HTTP Client--><dependency><grou ...

  4. 【JDK源码】java.io包常用类详解

    看完java.io的JDK源码,在网上发现一篇关于java.io中的类使用的文章总结的很全面,看完之后在原文的基础上加了一些自己的总结如下构成了本篇文章.原文地址 一.Java Io流 1. Java ...

  5. java.lang包—StringBuffer类和StringBuilder类

    目录 一.数据结构 二.线程安全性分析 三.源码 四.适用场景 一.数据结构 在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串.String 类是不可变类,即一旦一 ...

  6. java中的 ok_java okhttp包的类特点

    1.开始使用这个包时候不习惯,觉得api用起来很别扭,不管是Request okhttpClient formBody只要是设置啥,就必须使用类里面的Builder类,然后一个方法接受一个参数,不停地 ...

  7. java.lang包—枚举类Enum

    原文作者:山高我为 原文地址:java enum的用法详解 目录 一.enum关键字 二.Enum类源码 三.疑问 四.Enum常见用法 一.enum关键字 enum关键字是在Java1.5也就是Ja ...

  8. java中包命名常见规则

    做java的都知道java的包.类.接口.枚举.方法.常量.变量等等模型都有一套约定的命名规则! 学习每一种语言都应该学习对应语法和命名规则,以保持一个良好的编码风格.一来显示自己的专业.二来方便阅读 ...

  9. java怎么访问私有类_如何从Java类的外部访问类的私有方法?

    您可以使用java反射包访问类的私有方法. 步骤1-通过传递声明为私有的方法的方法名称来实例化java.lang.reflect包的Method类. 步骤2-通过将值true传递给setAccessi ...

最新文章

  1. win7无线热点_Windos7系统笔记本设置无线热点教程,应急时候可以用
  2. [RHEL5企业级Linux服务攻略]--第9季 Squid服务全攻略之高级配置
  3. 叠加原理 戴维南定理
  4. 剑指Offer14-剪绳子12
  5. python使用redis做缓存_python实现类redis缓存
  6. C# 之 Excel 导入一列中既有汉字又有数字:数字可以正常导入,汉字导入为空
  7. 性能测试的需求如何确定
  8. java 文件解签加签_将更改的文件移到另一个分支进行签入
  9. linux常见权限相关错误及解决
  10. [置顶]       javascript中的数组对象以及json学习笔记
  11. 触摸屏软键盘怎么调出来_触摸屏专用虚拟键盘下载
  12. ffmpeg m4a 转pcm_使用ffmpeg解码音频文件到PCM格式
  13. chardet.detect()
  14. PHP沉思录之三:Smarty
  15. 共享单车项目(一)--项目简介
  16. 魔兽世界服务器同时在线人数,魔兽世界服务器人数,魔兽世界服务器人数查询...
  17. Moore-Penrose 广义逆/伪逆 (The Moore-Penrose Pseudoinverse)
  18. Vim 插件 -- Pathogen
  19. powerbi服务器性能分配,Power BI 嵌入式分析性能最佳做法
  20. 【常用芯片】ULN2003工作原理及中文资料(实例:STM32驱动28BYJ48步进电机)

热门文章

  1. CRM WebClient UI的浏览器打印实现
  2. SpringBoot单元测试运行时报错:Failed to load ApplicationContext
  3. python获取字符串首字母_[Python] Python 获取中文的首字母 和 全部拼音首字母
  4. java提取字符从mysql_MySQL 字符串截取SUBSTRING()函数
  5. 计算机分级时无法度量视频播放,Win7 64位系统电脑评分出现“无法度量视频播放性能”怎么解决...
  6. 绑定dictionary 给定关键字不再字典中_VBA数组与字典解决方案第51讲:字典嵌套及二级下拉菜单的制作...
  7. excel删除重复数据保留一条_VBA利用字典删除重复行,保留唯一值
  8. 大数据学习规划(新手入门)
  9. matlab 求复数的模长,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...
  10. mysql 存储过程 条件_mysql sql存储过程条件定义与处理