Basic Guava Utilities-Preconditions

Preconditions类包含有许多的静态方法来检查代码的状态。
你可以自己来实现预置的条件判断,像下面的代码段:

 if(someObj == null){
   throw new IllegalArgumentException(" someObj must not be null");
 }

但是,使用Precondition(静态导入)类来实现同样的功能,相当的简洁:

checkNotNull(someObj,"someObj must not be null");

下面是Precondition类的几种常用方法示例:

public class PreconditionExample {
   private String label;
   private int[] values = new int[5];
   private int currentIndex;

   public PreconditionExample(String label) {
     //returns value of object if not null
     this.label = checkNotNull(label,"Label can''t be null");
   }

   public void updateCurrentIndexValue(int index, int valueToSet) {
     //Check index valid first
     this.currentIndex = checkElementIndex(index, values.length,"Index out of bounds for values");
     //Validate valueToSet
     checkArgument(valueToSet <= 100,"Value can't be more than 100");
     values[this.currentIndex] = valueToSet;
   }

   public void doOperation(){
     checkState(validateObjectState(),"Can't perform operation");
   }

   private boolean validateObjectState(){
     return this.label.equalsIgnoreCase("open") && values[this.currentIndex]==10;
   }
}

上面代码中四个Precondition类中方法的简介:

  • checkNotNull (T object, Object message): 如果object不为空,直接返回object;否则,抛出NullPointerException异常。
  • checkElementIndex (int index, int size, Object message): 如果index的值在给定的数组、集合和字符的长度size范围之类,则返回index;否则,抛出IndexOutOfBoundsException异常。
  • checkArgument (Boolean expression, Object message): 此方法接受一个返回值为boolean类型的expression表达式,如果表达式不为true,则抛出IllegalArgumentException异常。
  • checkState (Boolean expression, Object message):同checkArgument
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,256评论 19 139
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,856评论 0 9
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,839评论 18 399
  • 逛逛朋友圈,空间,无论是哪个类型的人,貌似都总有一种好的姿态生活着,而我一天又一天,真的有什么进步或者成长吗...
    这个姑娘_阅读 96评论 0 0
  • 冬至时节,太阳的笑脸就像害羞的闺女躲在闺房中一样,舍不得露出半点笑容,数日地连绵阴雨让我的心情看似郁闷至极。 从新...
    JasonLi2017阅读 349评论 0 0