写一个自己的断言
写一个自己业务里的断言,更好的描述业务,带来的是更好的扩展性和灵活性,让业务断言更加的好用,下面分享一个断言,虽然简单,但是好用,实用。
BusinessException 是自己定义的异常,甚至你也可以在抛出异常时,带上httpCode码,
让业务以不同的code来区分断言异常。
package com.wlc.doc.util;
import com.wlc.doc.exception.BusinessException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import java.util.Collection;
import java.util.Map;
/**
* 描述: 老王专用断言 </br>
* 时间: 2021-02-25 9:28 </br>
* 作者:老王
*/
@Slf4j
public class AssertUtil extends Assert {
/**
* 期望值是等于,不满足期望,则抛异常
* @param o1 值1
* @param o2 值2
* @param message 异常消息
*/
public static void isEquals(Object o1, Object o2 ,String message) {
if (!o1.toString().equals(o2.toString())) {
throw new BusinessException(message);
}
}
/**
* 期望值是不等于,不满足期望,则抛异常
* @param o1 值1
* @param o2 值2
* @param message 异常消息
*/
public static void isNotEquals(Object o1, Object o2 ,String message) {
if (o1.toString().equals(o2.toString())) {
throw new BusinessException(message);
}
}
/**
* 期望值等于true,不满足期望值即expression = false,则抛异常
* @param expression 表达式boolean值
* @param message 异常消息
* @param logInfo 异常日志打印对象
*/
public static void isTrue(boolean expression, String message, Object logInfo) {
if (!expression) {
if (!ObjectUtils.isEmpty(logInfo)){
log.error(logInfo.toString());
}
throw new BusinessException(message);
}
}
/**
* 期望值等于true,不满足期望值即expression = false,则抛异常
* @param expression 表达式boolean值
* @param message 异常消息
*/
public static void isTrue(boolean expression, String message) {
if (!expression) {
throw new BusinessException(message);
}
}
/**
* 期望值等于true,不满足期望值即expression = false,则抛异常
* @param expression 表达式boolean值
* @param message 异常消息
*/
public static void isNotTrue(boolean expression, String message) {
if (expression) {
throw new BusinessException(message);
}
}
/**
* 期望值等于true,不满足期望值即expression = false,则抛异常
* @param expression 表达式boolean值
* @param message 异常消息
* @param logInfo 异常日志打印对象
*/
public static void isNotTrue(boolean expression, String message, Object logInfo) {
if (expression) {
if (!ObjectUtils.isEmpty(logInfo)){
log.error(logInfo.toString());
}
throw new BusinessException(message);
}
}
/**
* 期望值object = null,若object != null,则抛异常
* @param object 判断对象
* @param message 异常消息
* @param logInfo 异常日志
*/
public static void isNull(@Nullable Object object, String message, Object logInfo) {
if (object != null) {
if (!ObjectUtils.isEmpty(logInfo)){
log.error(logInfo.toString());
}
throw new BusinessException(message);
}
}
/**
* 期望值object = null,若object != null,则抛异常
* @param object 判断对象
* @param message 异常消息
*/
public static void isNull(@Nullable Object object, String message) {
if (object != null) {
throw new BusinessException(message);
}
}
/**
* 期望值object != null,若object == null,则抛异常
* @param object 判断对象
* @param message 异常消息
* @param logInfo 异常日志
*/
public static void notNull(@Nullable Object object, String message, Object logInfo) {
if (object == null) {
if (!ObjectUtils.isEmpty(logInfo)){
log.error(logInfo.toString());
}
throw new BusinessException(message);
}
}
/**
* 期望值object != null,若object == null,则抛异常
* @param object 判断对象
* @param message 异常消息
*/
public static void notNull(@Nullable Object object, String message) {
if (ObjectUtils.isEmpty(object)) {
throw new BusinessException(message);
}
}
/**
* textToSearch字符串是否包含 substring ,期望不包含
* @param textToSearch 大区间str
* @param substring 小区间str
* @param message 异常消息
* @param logInfo 打印日志对象
*/
public static void doesNotContain(@Nullable String textToSearch, String substring, String message, Object logInfo) {
if (StringUtils.hasLength(textToSearch) && StringUtils.hasLength(substring) && textToSearch.contains(substring)) {
if (!ObjectUtils.isEmpty(logInfo)){
log.error(logInfo.toString());
}
throw new BusinessException(message);
}
}
/**
* textToSearch字符串是否包含 substring ,期望不包含
* @param textToSearch 大区间str
* @param substring 小区间str
* @param message 异常消息
*/
public static void doesNotContain(@Nullable String textToSearch, String substring, String message) {
if (StringUtils.hasLength(textToSearch) && StringUtils.hasLength(substring) && textToSearch.contains(substring)) {
throw new BusinessException(message);
}
}
/**
* 期望值不为空
* @param array 判断对象数组
* @param message 异常消息
*/
public static void notEmpty(@Nullable Object[] array, String message) {
if (ObjectUtils.isEmpty(array)) {
throw new BusinessException(message);
}
}
/**
* 期望值不为空
* @param array 判断对象数组
* @param message 异常消息
* @param logInfo 输出日志对象
*/
public static void notEmpty(@Nullable Object[] array, String message, Object logInfo) {
if (ObjectUtils.isEmpty(array)) {
if (!ObjectUtils.isEmpty(logInfo)){
log.error(logInfo.toString());
}
throw new BusinessException(message);
}
}
/**
* 期望值不为空
* @param collection 判断集合
* @param message 异常消息提醒
* @param logInfo 打印异常日志对象
*/
public static void notEmpty(@Nullable Collection<?> collection, String message, Object logInfo) {
if (CollectionUtils.isEmpty(collection)) {
if (!ObjectUtils.isEmpty(logInfo)){
log.error(logInfo.toString());
}
throw new BusinessException(message);
}
}
/**
* 期望值不为空
* @param collection 判断集合
* @param message 异常消息提醒
*/
public static void notEmpty(@Nullable Collection<?> collection, String message) {
if (CollectionUtils.isEmpty(collection)) {
throw new BusinessException(message);
}
}
/**
* 期望值不为空
* @param map 判断map
* @param message 异常消息提醒
* @param logInfo 打印异常日志对象
*/
public static void notEmpty(@Nullable Map<?, ?> map, String message, Object logInfo) {
if (CollectionUtils.isEmpty(map)) {
if (!ObjectUtils.isEmpty(logInfo)){
log.error(logInfo.toString());
}
throw new BusinessException(message);
}
}
/**
* 期望值不为空
* @param map 异常消息提醒
* @param message 异常消息提醒
*/
public static void notEmpty(@Nullable Map<?, ?> map, String message) {
if (CollectionUtils.isEmpty(map)) {
throw new BusinessException(message);
}
}
}
作者:IT学习道场
欢迎关注微信公众号 : IT学习道场