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

序:

这些工具类不仅仅只局限于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

转载:http://blog.csdn.net/techbirds_bao/article/details/8279119


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值