常用工具类

07-08 1736阅读

计算当天开始时间和结束时间

常用工具类
(图片来源网络,侵删)
DateTime date = DateUtil.date();
String startDateStr = DateUtil.formatDateTime(DateUtil.beginOfDay(date));
String endDateStr = DateUtil.formatDateTime(DateUtil.beginOfDay(DateUtil.offsetDay(date,1)));
params.put("startDate",startDateStr);
params.put("endDate",endDateStr);

1-数组工具类(ArrayUtils)

package com.tianji.common.utils;
import cn.hutool.core.util.ArrayUtil;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 数组工具类
 * @ClassName ArrayUtils
 **/
public class ArrayUtils extends ArrayUtil {
    /**
     * 将源数组转换成指定类型的列表
     *
     * @param originList  原始列表
     * @param targetClazz 转换后列表元素的类型
     * @param          原始列表元素的类型
     * @param          目标列表元素的类型
     * @return 目标类型的集合
     */
    public static  List convert(R[] originList, Class targetClazz) {
       return convert(originList, targetClazz, null);
    }
    /**
     * 将源数组转换成指定类型的列表
     *
     * @param originList  原始列表
     * @param targetClazz 转换后列表元素的类型
     * @param convert     转换特殊字段接口
     * @param          原始列表元素的类型
     * @param          目标列表元素的类型
     * @return 目标类型的集合
     */
    public static  List convert(R[] originList, Class targetClazz, Convert convert) {
        if (isEmpty(originList)) {
            return null;
        }
        return Arrays.stream(originList)
                .map(origin -> BeanUtils.copyBean(origin, targetClazz, convert))
                .collect(Collectors.toList());
    }
}

2-AspectUtils

package com.tianji.common.utils;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
import java.lang.reflect.Method;
public class AspectUtils {
    /**
     * 获取被拦截方法对象
     * MethodSignature.getMethod() 获取的是顶层接口或者父类的方法对象
     * 所以应该使用反射获取当前对象的方法对象
     */
    public static Method getMethod(ProceedingJoinPoint pjp) {
        //获取参数的类型
        Signature sig = pjp.getSignature();
        if (sig instanceof MethodSignature) {
            MethodSignature methodSignature = (MethodSignature) sig;
            return methodSignature.getMethod();
        } else {
            throw new IllegalArgumentException("It's not method");
        }
    }
    /**
     * 在aop切面中SPEL表达式对formatter进行格式化,
     * 转换出指定的值
     *
     * @param formatter
     * @param method
     * @param args
     * @return
     */
    public static String parse(String formatter, Method method, Object[] args) {
        LocalVariableTableParameterNameDiscoverer nameDiscoverer = new LocalVariableTableParameterNameDiscoverer();
        return SPELUtils.parse(formatter, nameDiscoverer.getParameterNames(method), args);
    }
}

3-断言工具类

package com.tianji.common.utils;
import com.tianji.common.constants.ErrorInfo;
import com.tianji.common.exceptions.BadRequestException;
import java.util.Map;
public class AssertUtils {
    public static void equals(Object obj1, Object obj2, String ... message){
        if (obj1 == null || obj2 == null) {
            handleException(message);
            return;
        }
        if (obj1 == obj2) {
            return;
        }
        if(!obj1.equals(obj2)){
            handleException(message);
        }
    }
    public static void isNotNull(Object obj, String ... message){
        if (obj == null) {
            handleException(message);
        }
    }
    public static void isNotBlank(String str, String ... message){
        if (StringUtils.isBlank(str)) {
            handleException(message);
        }
    }
    public static void isTrue(Boolean boo, String... message) {
        if (BooleanUtils.isFalse(boo)) {
            handleException(message);
        }
    }
    public static void isFalse(Boolean boo, String... message) {
        if (BooleanUtils.isTrue(boo)) {
            handleException(message);
        }
    }
    private static void handleException(String ... message){
        String msg = ErrorInfo.Msg.REQUEST_PARAM_ILLEGAL;
        if(message != null && message.length > 0){
            msg = message[0];
        }
        throw new BadRequestException(msg);
    }
    public static void isNotEmpty(Iterable coll, String ... message) {
        if(CollUtils.isEmpty(coll)){
            handleException(message);
        }
    }
    public static void isNotEmpty(Map map, String ... message) {
        if(CollUtils.isEmpty(map)){
            handleException(message);
        }
    }
}

4-BeanUtils

package com.tianji.common.utils;
import cn.hutool.core.bean.BeanUtil;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 继承自 hutool 的BeanUtil,增加了bean转换时自定义转换器的功能
 */
public class BeanUtils extends BeanUtil {
    /**
     * 将原对象转换成目标对象,对于字段不匹配的字段可以使用转换器处理
     *
     * @param source  原对象
     * @param clazz   目标对象的class
     * @param convert 转换器
     * @param      原对象类型
     * @param      目标对象类型
     * @return 目标对象
     */
    public static  T copyBean(R source, Class clazz, Convert convert) {
        T target = copyBean(source, clazz);
        if (convert != null) {
            convert.convert(source, target);
        }
        return target;
    }
    /**
     * 将原对象转换成目标对象,对于字段不匹配的字段可以使用转换器处理
     *
     * @param source  原对象
     * @param clazz   目标对象的class
     * @param      原对象类型
     * @param      目标对象类型
     * @return 目标对象
     */
    public static  T copyBean(R source, Class clazz){
        if (source == null) {
            return null;
        }
        return toBean(source, clazz);
    }
    public static  List copyList(List list, Class clazz) {
        if (list == null || list.size() == 0) {
            return CollUtils.emptyList();
        }
        return copyToList(list, clazz);
    }
    public static  List copyList(List list, Class clazz, Convert convert) {
        if (list == null || list.size() == 0) {
            return CollUtils.emptyList();
        }
        return list.stream().map(r -> copyBean(r, clazz, convert)).collect(Collectors.toList());
    }
}
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]