您的位置:首页 > 编程语言 > Java开发

Spring工具类的源码阅读(更新中~)

2012-12-10 17:05 525 查看

序:

这些工具类不仅仅只局限于spring框架的内部使用,完全可以作为独立的工具类在我们编写的项目中进行使用。好处便是代码质量提高,编写效率加快。今天在阅读

spring源码时,发现Assert类的使用,于是便参考网络资源,在这里做一个记录。

工具类:

断言Assert类

包名-org.springframework.util

public abstract class Assert {
public static void isTrue(boolean expression, String message) {
if (!expression) {
throw new IllegalArgumentException(message);
}
}
/**
* 1.根据某个表达式的boolean类型,进行断言。
*/
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);
}
}
/**
* 2.根据对象是否为空进行断言。不为空产生异常。
* @param object
*/
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);
}
}
/**
* 3.根据对象是否为空进行断言。为空产生异常。
* @param object
*/
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);
}
}
/**
* 4.根据字符串内容是否为空/空值进行断言,为空或空值则产生异常
* @param text
*/
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);
}
}
/**
* 5.比4的断言更严格,要求字符串内容不能为空格字符串所组成的。否则产生异常
* @param text
*/
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.indexOf(substring) != -1) {
throw new IllegalArgumentException(message);
}
}
/**
* 6.根据字符串是否包含子字符串进行断言,不包含则产生异常。
* @param textToSearch
* @param substring
*/
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);
}
}
/**
*
*
* 7.根据数组是否为空或者数组长度为0进行断言,满足前者之一则发生异常。
*/
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) {
for (int i = 0; i < array.length; i++) {
if (array[i] == null) {
throw new IllegalArgumentException(message);
}
}
}
}
/**
* 8.根据数组是否包含null对象进行断言,满足则发生异常
* @param array
*/
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);
}
}
/**
* 9.对集合类型是否为空或者元素为0进行断言,满足则发生异常
* @param collection
*/
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);
}
}
/**
* 10.对Map类型是否为空或者元素为0进行断言,满足则发生异常
* @param map
*/
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, "");
}
/**
*
*11.根据类型是否所属于指定类型进行断言,不是则发生异常
*/
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(message +
"Object of class [" + (obj != null ? obj.getClass().getName() : "null") +
"] must be an instance of " + type);
}
}
/**
* 12.subType必须可以按类型匹配于 superType,否则将抛出异常;
*/
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(message + subType + " is not assignable to " + superType);
}
}
public static void state(boolean expression, String message) {
if (!expression) {
throw new IllegalStateException(message);
}
}
/**
* 13.根据某个表达式的boolean类型,进行断言。类似1
* @param expression
*/
public static void state(boolean expression) {
state(expression, "[Assertion failed] - this state invariant must be true");
}

}

字符串StringUtil

转载:/article/7966992.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: