美文网首页
guava前置条件Preconditions类

guava前置条件Preconditions类

作者: 久伴我还是酒伴我 | 来源:发表于2019-04-17 17:21 被阅读0次

简介

Preconditions可以快速有效简洁的完成参数校验,避免我们在代码中写很多if语句,guava将所有检验的API都放置于Preconditions类中。

API

Preconditions类大致分为6种提供参数检验的方法

方法声明 描述 检查失败时抛出的异常
checkArgument(boolean) 检查boolean是否为true,用来检查传递给方法的参数。 IllegalArgumentException
checkNotNull(T) 检查value是否为null,该方法直接返回value,因此可以内嵌使用checkNotNull。 NullPointerException
checkState(boolean) 用来检查对象的某些状态。 IllegalStateException
checkElementIndex(int index, int size) 检查index作为索引值对某个列表、字符串或数组是否有效。index>=0 && index<size *。 IndexOutOfBoundsException
checkPositionIndex(int index, int size) 检查index作为位置值对某个列表、字符串或数组是否有效。index>=0 && index<=size *。 IndexOutOfBoundsException
checkPositionIndexes(int start, int end, int size) 检查[start, end]表示的位置范围对某个列表、字符串或数组是否有效* IndexOutOfBoundsException

举例

原始写法

public User login(String userName,String password){
    if(StringUtils.isEmpty(userName) || StringUtils.isEmpty(password)){
        throw new RuntimeException("用户名或密码不能为空");
    }
    User user = userService.queryUserByUserNameAndPassword(userName,password);
    if(null == user){
        throw new RuntimeException("用户名或密码错误");
    }
}

我们可以这样写

public User login(String userName,String password){
       Preconditions.checkArgument(!(StringUtils.isEmpty(userName) || StringUtils.isEmpty(password)),"用户名或密码不能为空");
       User user = userService.queryUserByUserNameAndPassword(userName,password);
       Preconditions.checkNotNull(user,"用户名或密码错误");
}

结束语

本文章部分代码摘抄部分为凯乐君的博客

相关文章

  • guava前置条件Preconditions类

    简介 Preconditions可以快速有效简洁的完成参数校验,避免我们在代码中写很多if语句,guava将所有检...

  • guava && lamba

    guava: Preconditions.checkArgument(AppUtil.notNullOrDefau...

  • Guava——Preconditions

    概述 Guava provides a number of precondition checking utili...

  • Guava——Preconditions

    Preconditions作为Guava中的异常的前置检查,提供了一系列方法。用于API实现者检查API参数的合法...

  • Preconditions的用法

    Google Guava中提供了一个Preconditions类,用于校验入参的正确性 源码分析: 示例如下:示例...

  • guava中Preconditions.checkState N

    前言 项目中遇到guava中Preconditions.checkState NoSuchMethod 的报错...

  • 002 Guava | Utilities

    本节介绍Guava的utilities中的工具包, Joiner Spliter Preconditions Ob...

  • 一个简单的占位符替换实现

    今天在看Guava的Preconditions这个类的源码的时候看到一个占位符替换的实现,我以前的想法都是repl...

  • Google Guava之Preconditions

    Preconditions比较简单的前置条件:让方法调用的前置条件判断更简单。 准备工作 官方仓库:https:/...

  • Guava-Preconditions & Strings

    Preconditions 用来做断言的,可以使代码变得优雅,不需要通过if去判断,并且还能抛出自定义内容的异常c...

网友评论

      本文标题:guava前置条件Preconditions类

      本文链接:https://www.haomeiwen.com/subject/yegnwqtx.html