package com.juseerp.common.utils;
import com.juseerp.common.exception.GlobleException;
import org.springframework.beans.BeanUtils;
import java.lang.reflect.Constructor;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
-
封装一下方便调用,用于常见的bean转vo操作或反之
-
@author :huarray
*/
public class BeanUtil {private static final Double doubleValue = 0.0;
/**
- 复制属性并转换类型
- @param source 源对象
- @param clazz 目标转换类型
*/
public static T typeConvert(Object source, Class clazz) {
T target;
try {
Constructor<?> constructor = clazz.getConstructor();
target = (T) constructor.newInstance();
} catch (Exception e) {
throw new GlobleException(“类型转换失败”);
}
BeanUtils.copyProperties(source, target);
return target;
}
/**
- list泛型对象转换
- @param source 源对象
- @param clazz 目标转换类型
- @return
*/
public static <T, E> List getNewList(List source, Class clazz) {
List list = new ArrayList<>();
for (T o : source) {
E e = typeConvert(o, clazz);
list.add(e);
}
return list;
}
/**
- 查看Object对象的具体类型 并强转
- @param objList 对象列表
- @return
*/
public static List formatValues(List objList) {
List newObjList = new ArrayList<>();
for (Object obj : objList) {
if(obj == null){
newObjList.add("");
continue;
}
if (obj instanceof Double) {
Double value = (Double) obj;
String valueDouble = value.toString();
obj = new BigDecimal(valueDouble).stripTrailingZeros().toPlainString();
} else if (obj instanceof BigDecimal) {
obj = ((BigDecimal) obj).stripTrailingZeros().toPlainString();
} else if (obj instanceof Date) {
Date date = (Date) obj;
obj = DateUtil.dateToString(date, DateUtil.DATE_FORMAT_DD);
}
newObjList.add(obj);
}
return newObjList;
}
}