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 okhttp包的类特点的更多相关文章

  1. java io包File类

    1.java io包File类, Java.io.File(File用于管理文件或目录: 所属套件:java.io)1)File对象,你只需在代码层次创建File对象,而不必关心计算机上真正是否存在对 ...

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

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

  3. java.time包常用类API学习记录

    Java8出来已那么多年了,java.time包之前一直没有使用过,最近正好有用到,在此做个记录. 上图列出了java.time包下的类,接下来我们详细看下其中每个类的用法. Clock:获取到当前时 ...

  4. 利用“Java同包同名类执行顺序”取消Java 网站应用程序Licence验证

    如果是在tomcat里运行,lib目录下一大堆的JAR包,不同的JAR包里可能会有相同的包名类名,JRE按照JAR名字的字母顺序加载JAR文件,同名类如果已加载,则后面的同名类会忽略. 公司购买的一款 ...

  5. java中包命名常见规则

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

  6. Java中关于日期类那些方法

                                                                       转载请注明出处http://blog.csdn.net/harry ...

  7. Android 学习第16课,java 包、类等相关的一些基础知识

    1.建议将类放在包中,不要使用无名包 2.建议包名都用小写单词组成,不要用大写 3.建议包名用“域名的倒写.项目名.模块名”的形式,以确保包名的唯一性 注意:类变量与实例变量.类方法与实例方法的区别 ...

  8. java中常用的包、类、以及包中常用的类、方法、属性----sql和text\swing

    java中常用的包.类.以及包中常用的类.方法.属性 常用的包 java.io.*; java.util.*; java.lang.*; java.sql.*; java.text.*; java.a ...

  9. java:数组操作工具类 java.util.Arrays包 主要方法详解

    Arrays类位于Java.util包下,是一个对数组操作的工具类,现将Arrays类中的方法做一个总结(JDK版本:1.6.0_34).Arrays类中的方法可以分为八类: sort(对数组排序) ...

随机推荐

  1. Mac配置环境变量注意点

    Mac配置环境变量的地方 1./etc/profile   (建议不修改这个文件 ) 全局(公有)配置,不管是哪个用户,登录时都会读取该文件. 2./etc/bashrc    (一般在这个文件中添加 ...

  2. Android keytool 生成keystore与给APK签名

    http://www.tttabc.com/android/keytool-keystore-jarsigner-apk.htm

  3. nginx负载均衡和反相代理的配置

    偷懒,参考这里 https://www.cnblogs.com/taiyonghai/p/6728707.html

  4. CentOS服务器简单判断CC攻击的命令

    使用下面的命令,可以分析下是否在被CC攻击.   第一条命令: tcpdump -s0 -A -n -i any | grep -o -E '(GET|POST|HEAD) .*' 正常的输出结果类似 ...

  5. Hive Tunning(三) 最佳实践

    在上一讲的基础上,我们来做来一个实际的例子来展示如何在实操中进行高效的hive查询作业. (1)首先我们建立一个表 CREATE EXTERNAL TABLE pos_staging( txnid S ...

  6. buzhoutiao

    基于SUI前端框架 前台HTML: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " ...

  7. Java设计模式(5)共享模式/享元模式(Flyweight模式)

    Flyweight定义:避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类). 为什么使用共享模式/享元模式 面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可 ...

  8. JS函数重载解决方案

    JS的函数定义可以指定形式参数名称,多多少少我们会以为js至少可以支持参数个数不同的方法重载,然而遗憾的是这仅仅是一个假象,js所有的参数都是以arguments传递过去的,这个参数类似于数组,在函数 ...

  9. Python 类的多态的运用

    #类的多态的运用 #汽车类 class Car(object): def move(self): print("move ...") #汽车商店类 class CarStore(o ...

  10. share a story on OSPF & BGP

    IP掌门把两个得意门生——BGP和OSPF叫到跟前,询问他们的修炼心得,以选择弟子传授大内心法——MPLS VPN.OSPF说:“小徒苦心研读路由原理,技术资料上万页,网络在我的围护下无环路,触发更新 ...