Preconditions优雅的检验参数

本文介绍Guava库中的Preconditions工具类,用于简化方法参数的校验过程。通过checkArgument和checkNotNull方法确保参数的有效性,从而预防运行时错误的发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在日常开发中,我们经常会对方法的输入参数做一些数据格式上的验证,以便保证方法能够按照正常流程执行下去。对于可预知的一些数据上的错误,我们一定要做事前检测和判断,来避免程序流程出错,而不是完全通过错误处理来保证流程正确执行,毕竟错误处理是比较消耗资源的方式。Guava类库中提供了一个作参数检查的工具类–Preconditions类, 该类可以大大地简化我们代码中对于参数的预判断和处理,让我们对方法输入参数的验证实现起来更加简单优雅.

Preconditions里常用的方法:

  1 .checkArgument(boolean) :
  功能描述:检查boolean是否为真。 用作方法中检查参数
  失败时抛出的异常类型: IllegalArgumentException

  2.checkNotNull(T):
  功能描述:检查value不为null, 直接返回value;
  失败时抛出的异常类型:NullPointerException

测试代码

public class PreconditionsTest {

    @Test
    public void testPreconditions() throws Exception {

        getPerson(8, "peida"); // 正确的情况
        getPerson(-9, "peida"); // age不满足条件的情况
        // getPerson(8, null);// name不满足条件的地方
    }

    /**
     * 
     * @param age
     *            age应该满足age>0的条件
     * @param neme
     *            name应该满足,name!=null的条件
     * @throws Exception
     * @return: void
     */
    public static void getPerson(int age, String name) throws Exception {
        // 对于age合法性的检查
        Preconditions.checkArgument(age > 0, " age 应该满足 age > 0  的条件,age现在的数值为  ", age);
        // 对于name的合法性检查
        Preconditions.checkNotNull(name, "name 应该满足 name !=null 的条件,name现在的数值为", name);
    }
}

测试结果

java.lang.IllegalArgumentException:  age 应该满足 age > 0  的条件,age现在的数值为   [-9]
java.lang.NullPointerException: name 应该满足 name !=null 的条件,name现在的数值为 [null]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值