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类

java中的 ok_java okhttp包的类特点相关推荐

  1. Java 中import的用法,以及类的种类

    问: 已经定义了一个包Human:包里定义一个类Human  1):  我在这个包外重新写个程序,import整个Human包,但是Human 不是公共的,为什么啊,不是引用了整个包后就可以使用了的么 ...

  2. 【计算机常识】IDEA如何建立一个Java工程,Java项目、模块、包、类,.idea是什么,out文件是什么

    刚刚开始学习一门编程语言的时候,我们往往是跟着某个老师学习,学习的过程中,可以编译出来,我们就很开心了.但是自己在创立工程的时候,我们会不理解,为啥这样建立啊?为啥工程下面自己创立了模块(就有src了 ...

  3. java在dog中定义name变量,组合构造 冯跃峰 java中组合的应用(不相干的类共同完成一个功能)+构造器回顾...

    java中组合的应用(不相干的类共同完成一个功能)+构造器回顾:今天我们了解到java的组合.可以说java组合是非常的重要的.可以对类进行封装,将底层的内容封装起来.甚至于java的继承都没有其重要 ...

  4. Java中的Type接口和Class类区别和联系

    Java中的Type接口和Class类有什么区别 Type是Class的父接口. Type 是 Java 编程语言中所有类型的公共高级接口.它们包括原始类型.参数化类型.数组类型.类型变量和基本类型. ...

  5. java 中成员变量的名字和类的方法的名字可以一样.

    java 中成员变量的名字和类的方法的名字可以一样. public class fourone {public static void main(String[] args) {int first[] ...

  6. java 中操作字符串都有哪些类?它们之间有什么区别?

    java 中操作字符串都有哪些类?它们之间有什么区别? String.StringBuffer.StringBuilder String : final修饰,String类的方法都是返回new Str ...

  7. JAVA中J.U.C 包下并发类的应用

    文章目录 JUC包中的锁应用 Lock接口及ReentrantLock对象分析及应用? Condition接口对象分析与应用? ReadWriteLock接口及实现类分析与应用? StampedLoc ...

  8. Java中的对象和包

    什么是对象 对象就是实际生活中的事物,可以说一切事物都是对象. 对象的三个特点 1  对象的行为:这个对象能做什么, 例如包子是用来吃的 2  对象的状态:对象保持的一种状态,例如这个包子是热的还是凉 ...

  9. java可以使用c语言中的输入,c语言中的scanf在java中应该怎么表达,Scanner类。

    1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...

最新文章

  1. 堆栈,静态变量和普通变量,静态函数和普通函数的区别
  2. SAP销售订单-订单组合
  3. 艾滋病ppt模板_ppt模板世界艾滋病日ppt模板,艾滋病的防治方法是什么
  4. 简单思维dp-- Gym - 102392B
  5. ps怎么清屏_黑洞PS大赛刷屏!最后一张扎心了……
  6. 【转】oracle 和 ' 特殊字符处理 ( like 'GAC/_%' escape ''; 这里面的 / 居然将 转义了 为什么?)...
  7. OpenCV3学习(9.2)连通域分析函数详解connectedComponents()和connectedComponentsWithStats()
  8. 共建公安标准体系 | 七牛云与锐安科技达成深度战略合作
  9. 三月数据库技术通讯.pdf | Oracle配置DCD避免会话被防火墙强制断开
  10. java中tcp传图片_Java学习之TCP上传图片
  11. 软件唯有开源才是出路?
  12. Windows程序员进阶应该看的那些书
  13. WebRTC架构和协议栈-zz
  14. IPFS是创建DWeb应用程序中基础技术的领先者
  15. python爬虫系列(一):爬虫简介
  16. 大数据Kudu使用方法
  17. 经线、纬线、本初子午线、南北东西半球
  18. 独立同分布(I.I.D.)是什么?(转载)
  19. 反射是什么,以及作用
  20. 如何做出实用而强大的数据地图?

热门文章

  1. 计算机网络基础-目录
  2. bzoj1925地精部落——数学
  3. HDU 2037 今年暑假不AC (贪心)
  4. 【计算机视觉】运动目标检测算法文献阅读笔记
  5. Oracle-BPM安装详解
  6. Spring MVC 之@Controller@RequestMapping详解
  7. Meta http-equiv 大全
  8. svn update 时总是提示 Password for '(null)' GNOME keyring: 输入密码
  9. Flutter 悬浮按钮 FloatingActionButton 的详细配置使用
  10. Spring中的@ImportResource