Java后端开发的过程中我们经常会遇到判断数据范围、判断返回的结果是否为true、某一个对象是否是指定的实例对象等等;遇到这样的情况我们不得不写很多的代码来实现;common-lang包中有现成的工具类Validate,没必要重复的造轮子,看下下面的示例程序:
- 判断结果是否为true,否则将抛出IllegalArgumentException异常
try {
Validate.isTrue(true);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
看下isTrue方法的源码:
public static void isTrue(final boolean expression) {
if (!expression) {
throw new IllegalArgumentException(DEFAULT_IS_TRUE_EX_MESSAGE);
}
}
- 判断一个值是否包含在指定的范围之内,否则会抛出IllegalArgumentException异常
try {
Validate.exclusiveBetween(1, 3, 4);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
看下源码:
@SuppressWarnings("boxing")
public static void exclusiveBetween(final long start, final long end, final long value) {
// TODO when breaking BC, consider returning value
if (value <= start || value >= end) {
throw new IllegalArgumentException(String.format(DEFAULT_EXCLUSIVE_BETWEEN_EX_MESSAGE, value, start, end));
}
}
- 判断一个类与另一个类的实例对象是否同一个类或接口的子类,或者类的信息相同,否则抛出IllagelArgumentException.
try {
Validate.isAssignableFrom(Map.class, Map.class);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
根据上面的例子和源码可以使用工具类Validate做各种各样数据合法性的判断,只要不符合我们预期的结果就会抛出异常,我们可以根据异常做对应的处理,具体如何灵活的使用还是要在工作中不断的实践。