写一个自己的断言

写一个自己业务里的断言,更好的描述业务,带来的是更好的扩展性和灵活性,让业务断言更加的好用,下面分享一个断言,虽然简单,但是好用,实用。

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学习道场