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

做徽章的网站wordpress数字商城

做徽章的网站,wordpress数字商城,wordpress自带小工具,检察门户网站建设方案以下资料整理自网络 一、Google Guava入门介绍 引言 Guavaproject包括了若干被Google的 Java项目广泛依赖 的核心库#xff0c;比如#xff1a;集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [comm…      以下资料整理自网络 一、Google Guava入门介绍 引言 Guavaproject包括了若干被Google的 Java项目广泛依赖 的核心库比如集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 全部这些工具每天都在被Google的project师应用在产品服务中。 查阅Javadoc并不一定是学习这些库最有效的方式。在此我们希望通过此文档为Guava中最流行和最强大的功能。提供更具可读性和解释性的说明。 译文格式说明 Guava中的类被首次引用时都会链接到Guava的API文档。如OptionalT。Guava和JDK中的方法被引用时。一般都会链接到Guava或JDK的API文档一些人所共知的JDK方法除外。如Optional.of(T), Map.get(key)。译者对文档的额外说明以斜体显示而且以“译者注”開始。文件夹 1. 基本工具 [Basic utilities] 让使用Java语言变得更舒适 1.1 使用和避免nullnull是模棱两可的会引起令人困惑的错误。有些时候它让人非常不舒服。非常多Guava工具类用高速失败拒绝null值而不是盲目地接受 1.2 前置条件: 让方法中的条件检查更简单 1.3 常见Object方法: 简化Object方法实现。如hashCode()和toString() 1.4 排序: Guava强大的”流畅风格比較器” 1.5 Throwables简化了异常和错误的传播与检查 2. 集合[Collections] Guava对JDK集合的扩展这是Guava最成熟和为人所知的部分 2.1 不可变集合: 用不变的集合进行防御性编程和性能提升。 2.2 新集合类型: multisets, multimaps, tables, bidirectional maps等 2.3 强大的集合工具类: 提供java.util.Collections中没有的集合工具 2.4 扩展工具类让实现和扩展集合类变得更easy。比方创建Collection的装饰器或实现迭代器 3. 缓存[Caches] Guava Cache本地缓存实现支持多种缓存过期策略 4. 函数式风格[Functional idioms] Guava的函数式支持能够显著简化代码。但请慎重使用它 5. 并发[Concurrency] 强大而简单的抽象让编写正确的并发代码更简单 5.1 ListenableFuture完毕后触发回调的Future 5.2 Service框架抽象可开启和关闭的服务帮助你维护服务的状态逻辑 6. 字符串处理[Strings] 非常实用的字符串工具。包括切割、连接、填充等操作 7. 原生类型[Primitives] 扩展 JDK 未提供的原生类型如int、char操作 包括某些类型的无符号形式 8. 区间[Ranges] 可比較类型的区间API。包括连续和离散类型 9. I/O 简化I/O尤其是I/O流和文件的操作针对Java5和6版本号 10. 散列[Hash] 提供比Object.hashCode()更复杂的散列实现。并提供布鲁姆过滤器的实现 11. 事件总线[EventBus] 公布-订阅模式的组件通信但组件不须要显式地注冊到其它组件中 12. 数学运算[Math] 优化的、充分測试的数学工具类 13. 反射[Reflection] Guava 的 Java 反射机制工具类      中文參考站点http://ifeve.com/google-guava/ 二、Guava学习笔记Preconditions优雅的检验參数   在日常开发中。我们常常会对方法的输入參数做一些数据格式上的验证以便保证方法能够依照正常流程运行下去。对于可预知的一些数据上的错误。我们一定要做事前检測和推断来避免程序流程出错而不是全然通过错误处理来保证流程正确运行毕竟错误处理是比較消耗资源的方式。在寻常情况下我们对參数的推断都须要自己来逐个写方法推断代码量不少而且复用性不高例如以下所看到的 import org.junit.Test;public class PreconditionsTest {Testpublic void Preconditions() throws Exception { getPerson(8,peida);getPerson(-9,peida);getPerson(8,);getPerson(8,null);}public static void getPerson(int age,String neme)throws Exception{if(age0neme!nullneme.isEmpty()!true){System.out.println(a person age:age,neme:neme);}else{System.out.println(參数输入有误。);}} }   说明參数验证。我们每次都要加入if语句来做推断, 反复的工作会做好多次。getPerson方法仅仅有2个參数。验证规则也不是非常复杂假设參数过度验证规则复杂后上面代码的可读性都会非常差的复用性就更谈不上了。   Guava类库中提供了一个作參数检查的工具类--Preconditions类 该类能够大大地简化我们代码中对于參数的预推断和处理。让我们对方法输入參数的验证实现起来更加简单优雅。以下我们看看Preconditions类的使用实例 Preconditions里面的方法   1 .checkArgument(boolean)   功能描写叙述检查boolean是否为真。 用作方法中检查參数   失败时抛出的异常类型: IllegalArgumentException   2.checkNotNull(T)        功能描写叙述检查value不为null 直接返回value   失败时抛出的异常类型NullPointerException   3.checkState(boolean)   功能描写叙述检查对象的一些状态。不依赖方法參数。 比如 Iterator能够用来next是否在remove之前被调用。   失败时抛出的异常类型IllegalStateException   4.checkElementIndex(int index, int size)   功能描写叙述检查index是否为在一个长度为size的list string或array合法的范围。 index的范围区间是[0, size)(包括0不包括size)。无需直接传入list string或array 仅仅需传入大小。返回index。     失败时抛出的异常类型IndexOutOfBoundsException   5.checkPositionIndex(int index, int size)   功能描写叙述检查位置index是否为在一个长度为size的list。 string或array合法的范围。 index的范围区间是[0 size)(包括0不包括size)。无需直接传入list。 string或array 仅仅需传入大小。返回index。   失败时抛出的异常类型IndexOutOfBoundsException   6.checkPositionIndexes(int start, int end, int size)   功能描写叙述检查[start, end)是一个长度为size的list。 string或array合法的范围子集。伴随着错误信息。   失败时抛出的异常类型IndexOutOfBoundsException   一个比較实用实例 import java.util.ArrayList; import java.util.List; import org.junit.Test; import com.google.common.base.Preconditions;public class PreconditionsTest {Testpublic void Preconditions() throws Exception { getPersonByPrecondition(8,peida);try {getPersonByPrecondition(-9,peida);} catch (Exception e) {System.out.println(e.getMessage());}try {getPersonByPrecondition(8,);} catch (Exception e) {System.out.println(e.getMessage());}try {getPersonByPrecondition(8,null);} catch (Exception e) {System.out.println(e.getMessage());}ListInteger intListnew ArrayListInteger ();for(int i0;i10;i){ try {checkState(intList,9);intList.add(i);} catch (Exception e) {System.out.println(e.getMessage());}}try {checkPositionIndex(intList,3); } catch (Exception e) {System.out.println(e.getMessage());}try {checkPositionIndex(intList,13); } catch (Exception e) {System.out.println(e.getMessage());}try {checkPositionIndexes(intList,3,7);} catch (Exception e) {System.out.println(e.getMessage());}try {checkPositionIndexes(intList,3,17);} catch (Exception e) {System.out.println(e.getMessage());}try {checkPositionIndexes(intList,13,17);} catch (Exception e) {System.out.println(e.getMessage());}try {checkElementIndex(intList,6);} catch (Exception e) {System.out.println(e.getMessage());}try {checkElementIndex(intList,16);} catch (Exception e) {System.out.println(e.getMessage());}}public static void getPersonByPrecondition(int age,String neme)throws Exception{Preconditions.checkNotNull(neme, neme为null);Preconditions.checkArgument(neme.length()0, neme为\\);Preconditions.checkArgument(age0, age 必须大于0);System.out.println(a person age:age,neme:neme);}public static void checkState(ListInteger intList,int index)throws Exception{//表达式为true不抛异常Preconditions.checkState(intList.size()index, intList size 不能大于index);}public static void checkPositionIndex(ListInteger intList,int index) throws Exception{Preconditions.checkPositionIndex(index, intList.size(), index index 不在 list中。 List size为intList.size());}public static void checkPositionIndexes(ListInteger intList,int start,int end) throws Exception{Preconditions.checkPositionIndexes(start, end, intList.size());}public static void checkElementIndex(ListInteger intList,int index) throws Exception{Preconditions.checkElementIndex(index, intList.size(),index 为 index 不在 list中 List size为 intList.size());} }   输出结果 a person age:8,neme:peida age 必须大于0 neme为 neme为nullintList size 不能大于9 index 13 不在 list中 List size为9 (13) must not be greater than size (9) end index (17) must not be greater than size (9) start index (13) must not be greater than size (9) index 为 16 不在 list中 List size为 9 (16) must be less than size (9)     Guava的preconditions有这样几个长处:   在静态导入后, 方法非常明白无歧义, checkNotNull能够清楚地告诉你它是干什么的, 它会抛出如何的异常.   checkNotNull在验证通过后直接返回, 能够这样方便地写代码: this.field checkNotNull(field).       简单而又强大的可变參数printf风格的自己定义错误信息. 參考文章http://www.cnblogs.com/peida/archive/2013/06/17/Guava_Preconditions.html
http://mrfarshtey.net/news/71702/

相关文章:

  • 肇庆企业网站关键词优化教程如何在网站上做社交的链接
  • 移动网站设计上机考试杭州网站建设公司平台
  • 腾讯云 个人网站最近重大新闻头条
  • 网站建设空心正方形建设厅质监总站网站
  • 泉州网站设计师招聘普陀本地论坛
  • 恩施网站建设公司如何查询网站打开速度变慢
  • 做网站知乎做网站的注意什么
  • 网站现在怎么做排名小组做数据库网站
  • 谷歌英文网站网站蜘蛛来访记录
  • 关于网站建设的方案ppt襄阳seo站内优化
  • js模拟点击网站的按钮织梦cms手机版
  • 弋阳县建设工程网站个体商户建自己的网站做销售
  • 青岛做公司网站的公司平原网站建设电话
  • 好的用户体验网站做国珍新时代 网站
  • 天津移动网站设计怎样做企业营销网站
  • 哪些网站专做新闻厦门网站建设阳哥
  • 建立个人博客网站wordpress苏州建网站提供
  • 建设银行湖南省分行官方网站网站建设交流qq
  • 酷站网素材一级消防工程师
  • 网站推广排名wordpress书签插件
  • 网站制作设计说明做网站的公司cnfg
  • 延边住房和城乡建设局网站怎么在网站注册账号
  • 合肥网络公司网站建设免费空间服务器
  • 餐饮网站系统网站内容优化细节
  • 做方案收集图片的网站wordpress手机发表文章
  • 网站关键词优化方案分为几个步骤网站开发后端开发
  • 楼梯 技术支持 东莞网站建设如何分析他人网站流量
  • 网站网页设计师wordpress小插件
  • 做网站每年需要购买域名吗深圳中光建设有限公司
  • 网站开发前端和后端哪个费时间最大的搜索网站排名