旧项目里面使用了google的guawa,起始不知道为什么,项目跑起来跟着断点看了看非常有意思,这里做个记录,以便以后查询,后面Preconditions的各种方法直接copy的别人的,原文地址:http://blog.csdn.net/dyllove98/article/details/9140523
译文里面讲解了很多比如集合、缓存、函数、并发、字符串处理、IO、散列、运算、反射等等,但是我们常用的还是防止null和简化异常
之前的异常和null都是手动判断,比较冗余,旧项目是使用mvc,自定义注解,将每一个需要的方法都进行了参数判断。单纯来说使用非常简单
import com.google.common.base.Preconditions;
方法:
try {
Preconditions.checkNotNull(id,"id不能为空!");
Preconditions.checkNotNull(name, "name不能为null");
Preconditions.checkArgument(neme.length()>0, "输出某些文字");
Preconditions.checkArgument(age>0, "age 必须大于0");
} catch (Exception e) {
抛出异常
}
true不抛出异常
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