您的位置:首页 > 其它

guava学习之——使用Preconditions类进行参数检查。

2015-03-28 13:38 375 查看
      参数检查是一个项目中必须要考虑到的。参数检查前端要做,后端更要做。这决定了一个项目的健壮性和安全性。

guava的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

下面是一些小例子:

比如我们开发java web程序时,需要校验客户端传来的参数。

1.检查前端传来的电话号码,要求不能为空,并且正则匹配。

Preconditions.checkArgument(phoneNum!=null && !"".equals(phoneNum.trim()) &&phoneNum.matches("^(13[0-9]|15[0-9]|17[678]|18[0-9]|14[57])[0-9]{8}$"),
"请输入正确的电话号码");

2.对方法的参数进行判断,如若不进行判断,就会引发很多问题。

public void f(Entry entry) {

        Preconditions.checkNotNull(entry);// 参数校验

        log.info(entry.getName()); // 如果不进行参数的检查,当entry为空时,程序就会出现问题。

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐