独有工具类
问题与背景
工具类系统中使用了 hutool,但是有些情况他满足不了,所以又集合了自己的工具类;
具体的工具类在 sa-base
项目的 net.lab1024.sa.base.common.util
包;
获取当前用户
SmartRequestUtil.java,查看代码 方法:
java
SmartRequestUtil.getRequestUser();//获取当前请求用户
SmartRequestUtil.getRequestUserId();//获取当前请求用户的用户id
SmartRequestUtil.setRequestUser(...);//设置当前请求用户
SmartRequestUtil.remove();//移除请求用户
Bean复制
javabean之间的复制很频繁,但是性能比较好的应该是 spring的BeanUtils
,又简单封装了下;
SmartBeanUtil.java,查看代码
java
SmartBeanUtil.copy(Object source, Class<T> targetClass); //复制对象
SmartBeanUtil.copyProperties(Object source, Object target); //复制bean的属性
SmartBeanUtil.copyList(List<T> source, Class<T> targetClass); //复制list
字符串
hutool中有字符串工具类,但是还是少,可以看下的SmartStringUtil
java
Set<String> splitConvertToSet(String str, String split); //分割字符串转为 Int Set
List<String> splitConvertToList(String str, String split); //分割字符串转为 Int List
与此之外还有转为 Long、Byte、Double 等等其他类型的 Set、List、Array等
枚举
在java特性中,用了BaseEnum
接口解决枚举的问题,具体可以看SmartBaseEnum.java,查看代码
java
// 校验参数与枚举类比较是否合法
boolean checkEnum(Object value, Class<? extends BaseEnum> enumClass) ;
// 创建一个具有唯一array值的数组,每个值不包含在其他给定的数组中。
List<Object> differenceValueList(Class<? extends BaseEnum> enumClass, T... exclude);
// 获取枚举类的说明 value : info 的形式
String getEnumDesc(Class<? extends BaseEnum> enumClass) ;
// 获取与参数相匹配的枚举类实例的
String getEnumDescByValue(Object value, Class<? extends BaseEnum> enumClass);
等等还有其他很好用的方法
BigDecimal
SmartBigDecimalUtil.java,查看代码 关于小数计算的: 加减乘除 方式方法;