import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
public class CommonUtilTool {
private static final DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
/**
* 生成36位的UUID
*
* @return
*/
public static String UUID() {
return UUID.randomUUID().toString();
}
/**
* @Description: 获取系统当前时间 yyyy-MM-dd HH:mm:ss
* @param:
* @return:
*/
public static String nowTime() {
return df.format(LocalDateTime.now());
}
/**
* @Description: 使bean中为null的属性转换成空字符串
*/
public static <T> void nullToEmpty(T bean) {
Log logger = LogFactory.getLog(AppUtilTool.class);
Field[] field = bean.getClass().getDeclaredFields();
// 遍历所有属性
for (int j = 0; j < field.length; j++) {
// 获取属性的名字
String name = field[j].getName();
// 将属性的首字符大写,方便构造get,set方法
name = name.substring(0, 1).toUpperCase() + name.substring(1);
// 获取属性的类型
String type = field[j].getGenericType().toString();
// 如果type是类类型,则前面包含"class ",后面跟类名
if (("class java.lang.String").equals(type)) {
try {
Method mGet = bean.getClass().getMethod("get" + name);
// 调用getter方法获取属性值
String value = (String) mGet.invoke(bean);
if (null == value || "".equals(value)) {
Method mSet = bean.getClass().getMethod("set" + name, new Class[]{String.class});
mSet.invoke(bean, new Object[]{new String("")});
}
} catch (Exception e) {
logger.error("bean中为null的属性转换成空字符串", e);
}
}
}
}
/**
* @Description: 使map中为null的属性转换成空字符串
*/
public static Map<String, Object> nullToEmptyForMap(Map<String, Object> map) {
Set<String> set = map.keySet();
if (set != null && !set.isEmpty()) {
for (String key : set) {
if (map.get(key) == null) {
map.put(key, "");
}
}
}
return map;
}
/**
* @Description: 校验是否为11位数字
*/
public static boolean isElevenNumber(String str) {
if (null != str && !StringUtils.isEmpty(str)) {
// 匹配11位数字
String regex = "\\d{11}";
return str.matches(regex);
}
return false;
}
/**
* @Description: 校验是否为数字
*/
public static boolean isNumber(String str) {
if (null != str && !StringUtils.isEmpty(str)) {
// 匹配数字
String regex = "\\d";
return str.matches(regex);
}
return false;
}
/**
* 名字脱敏
* 规则,张飞,脱敏为:张*;张三丰,脱敏为:张**
*
* @param name
* @return
*/
public static String nameDesensitization(String name) {
if (StringUtils.isEmpty(name)) {
return "";
}
String myName = "";
char[] chars = name.toCharArray();
if (chars.length == 1) {
myName = name;
}
if (chars.length > 1) {
StringBuilder str = new StringBuilder();
for (int i = 0; i < chars.length - 1; i++) {
str.append("*");
}
myName = name.substring(0, 1) + str.toString();
}
return myName;
}
}
java常用的工具类方法
最新推荐文章于 2023-01-26 16:22:22 发布