Spring框架提供的参数判断的工具类,常用方法有:
- isTrue(boolean expression, String message)--判断boolean值是否为true,不为true抛异常;
- isNull(Object object, String message)--obj是否为空,不为空抛异常
- notNull(Object object, String message)--obj是否不为空,为空抛异常
- hasLength(String text, String message)--this String argument must have length; it must not be null or empty
- hasText(String text, String message)--this String argument must have text; it must not be null, empty, or blank
- doesNotContain(String textToSearch, String subString, String message)--this String argument must not contain the substring
- notEmpty(Object[] array) --this array must not be empty: it must contain at least 1 element
- notEmpty(Collection<?> collection)--this collection must not be empty
- notEmpty(Map<?,?> map,String message)--this map must not be empty
- noNullElements(Object[] array, String message)--this array must not contain any null elements");
- isInstanceOf(Class<?> clazz, Object obj)--obj must be object of clazz
- state(boolean expression, String message)--this state invariant must be true
源码如下:
package org.springframework.util; import java.util.Collection; import java.util.Map; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; public abstract class Assert { public Assert() { } public static void isTrue(boolean expression, String message) { if(!expression) { throw new IllegalArgumentException(message); } } public static void isTrue(boolean expression) { isTrue(expression, "[Assertion failed] - this expression must be true"); } public static void isNull(Object object, String message) { if(object != null) { throw new IllegalArgumentException(message); } } public static void isNull(Object object) { isNull(object, "[Assertion failed] - the object argument must be null"); } public static void notNull(Object object, String message) { if(object == null) { throw new IllegalArgumentException(message); } } public static void notNull(Object object) { notNull(object, "[Assertion failed] - this argument is required; it must not be null"); } public static void hasLength(String text, String message) { if(!StringUtils.hasLength(text)) { throw new IllegalArgumentException(message); } } public static void hasLength(String text) { hasLength(text, "[Assertion failed] - this String argument must have length; it must not be null or empty"); } public static void hasText(String text, String message) { if(!StringUtils.hasText(text)) { throw new IllegalArgumentException(message); } } public static void hasText(String text) { hasText(text, "[Assertion failed] - this String argument must have text; it must not be null, empty, or blank"); } public static void doesNotContain(String textToSearch, String substring, String message) { if(StringUtils.hasLength(textToSearch) && StringUtils.hasLength(substring) && textToSearch.contains(substring)) { throw new IllegalArgumentException(message); } } public static void doesNotContain(String textToSearch, String substring) { doesNotContain(textToSearch, substring, "[Assertion failed] - this String argument must not contain the substring [" + substring + "]"); } public static void notEmpty(Object[] array, String message) { if(ObjectUtils.isEmpty(array)) { throw new IllegalArgumentException(message); } } public static void notEmpty(Object[] array) { notEmpty(array, "[Assertion failed] - this array must not be empty: it must contain at least 1 element"); } public static void noNullElements(Object[] array, String message) { if(array != null) { Object[] var2 = array; int var3 = array.length; for(int var4 = 0; var4 < var3; ++var4) { Object element = var2[var4]; if(element == null) { throw new IllegalArgumentException(message); } } } } public static void noNullElements(Object[] array) { noNullElements(array, "[Assertion failed] - this array must not contain any null elements"); } public static void notEmpty(Collection<?> collection, String message) { if(CollectionUtils.isEmpty(collection)) { throw new IllegalArgumentException(message); } } public static void notEmpty(Collection<?> collection) { notEmpty(collection, "[Assertion failed] - this collection must not be empty: it must contain at least 1 element"); } public static void notEmpty(Map<?, ?> map, String message) { if(CollectionUtils.isEmpty(map)) { throw new IllegalArgumentException(message); } } public static void notEmpty(Map<?, ?> map) { notEmpty(map, "[Assertion failed] - this map must not be empty; it must contain at least one entry"); } public static void isInstanceOf(Class<?> clazz, Object obj) { isInstanceOf(clazz, obj, ""); } public static void isInstanceOf(Class<?> type, Object obj, String message) { notNull(type, "Type to check against must not be null"); if(!type.isInstance(obj)) { throw new IllegalArgumentException((StringUtils.hasLength(message)?message + " ":"") + "Object of class [" + (obj != null?obj.getClass().getName():"null") + "] must be an instance of " + type); } } public static void isAssignable(Class<?> superType, Class<?> subType) { isAssignable(superType, subType, ""); } public static void isAssignable(Class<?> superType, Class<?> subType, String message) { notNull(superType, "Type to check against must not be null"); if(subType == null || !superType.isAssignableFrom(subType)) { throw new IllegalArgumentException((StringUtils.hasLength(message)?message + " ":"") + subType + " is not assignable to " + superType); } } public static void state(boolean expression, String message) { if(!expression) { throw new IllegalStateException(message); } } public static void state(boolean expression) { state(expression, "[Assertion failed] - this state invariant must be true"); }