当前位置: 首页 > news >正文

常用工具类

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

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 <R>         原始列表元素的类型* @param <T>         目标列表元素的类型* @return 目标类型的集合*/public static <R, T> List<T> convert(R[] originList, Class<T> targetClazz) {return convert(originList, targetClazz, null);}/*** 将源数组转换成指定类型的列表** @param originList  原始列表* @param targetClazz 转换后列表元素的类型* @param convert     转换特殊字段接口* @param <R>         原始列表元素的类型* @param <T>         目标列表元素的类型* @return 目标类型的集合*/public static <R, T> List<T> convert(R[] originList, Class<T> targetClazz, Convert<R, T> 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 <R>     原对象类型* @param <T>     目标对象类型* @return 目标对象*/public static <R, T> T copyBean(R source, Class<T> clazz, Convert<R, T> convert) {T target = copyBean(source, clazz);if (convert != null) {convert.convert(source, target);}return target;}/*** 将原对象转换成目标对象,对于字段不匹配的字段可以使用转换器处理** @param source  原对象* @param clazz   目标对象的class* @param <R>     原对象类型* @param <T>     目标对象类型* @return 目标对象*/public static <R, T> T copyBean(R source, Class<T> clazz){if (source == null) {return null;}return toBean(source, clazz);}public static <R, T> List<T> copyList(List<R> list, Class<T> clazz) {if (list == null || list.size() == 0) {return CollUtils.emptyList();}return copyToList(list, clazz);}public static <R, T> List<T> copyList(List<R> list, Class<T> clazz, Convert<R, T> convert) {if (list == null || list.size() == 0) {return CollUtils.emptyList();}return list.stream().map(r -> copyBean(r, clazz, convert)).collect(Collectors.toList());}
}
http://www.lryc.cn/news/389093.html

相关文章:

  • 【数据库原理】总结(期末版)
  • 【算能全国产AI盒子】基于BM1688CV186AH+FPGA智能物联工作站,支持差异化泛AI视觉产品定制
  • 材质相关内容整理 -ThreeJs
  • ES 嵌套查询
  • 《等保测评实战指南:从评估到加固的全程解析》
  • 【24考研·交通】我的考研经历
  • ERP系统中有哪些模块?有哪些具体实现方案呢?
  • 扩散模型在机器学习中的应用及原理
  • fastapi自定义中间件
  • 基于 MCU 的开发,能不能对代码进行单元测试?
  • 基于OpenCV与Keras的停车场车位自动识别系统
  • YOLOv10改进教程|C2f-CIB加入注意力机制
  • 算法训练营day06 哈希表(统计数,去重,降低时间复杂度)
  • 影帝郭晋安关联保健品企业,草姬集团无研发费用销售成本不低
  • leetcode-19-回溯-组合问题(剪枝、去重)
  • Java案例实现双色球
  • JS(JavaScript)的BOM操作
  • 【CT】LeetCode手撕—82. 删除排序链表中的重复元素 II
  • C++ STL unique_ptr智能指针源码剖析
  • Unity中的的文件夹(特殊文件夹)
  • Go语言定时器Timer和Ticker到底怎么用
  • 41、web基础和http协议
  • 6-173 二分查找的关键字比较次数
  • 【基础篇】第5章 Elasticsearch 数据聚合与分析
  • 【网络安全】修改Host文件实现域名解析
  • Spring Boot 全面解析:从入门到实践案例
  • 222222222
  • Boost 智能指针
  • 在WSL Ubuntu中启用root用户的SSH服务
  • C语⾔数据类型和变量