import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import org.apache.commons.lang.ArrayUtils;
public class BeanHelper {
/**
* 将对象的null字段赋值为默认值
*
* @param cls
* @param <T>
* @return
*/
public static <T> T noNullStringAttr(T cls) {
Field[] fields = cls.getClass().getDeclaredFields();
Field[] parendFields = cls.getClass().getSuperclass().getDeclaredFields();
if (ArrayUtils.isEmpty(fields) && ArrayUtils.isEmpty(parendFields)) {
return cls;
}
for (Field field : fields) {
if ("String".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, "");
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("Date".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, new Date());
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("int".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, 0);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("Integer".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, 0);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("long".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, 0L);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("Long".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, 0L);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("Float".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, Float.parseFloat("0"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("float".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, Float.parseFloat("0"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("BigDecimal".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, BigDecimal.ZERO);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("List".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, new ArrayList<>());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
for (Field field : parendFields) {
if ("String".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, "");
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("Date".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, new Date());
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("int".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, 0);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("Integer".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, 0);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("long".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, 0L);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("Long".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, 0L);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("Float".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, Float.parseFloat("0"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("BigDecimal".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, BigDecimal.ZERO);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("float".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, Float.parseFloat("0"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
if ("List".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value == null) {
field.set(cls, new ArrayList<>());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
return cls;
}
/**
* 将BigDecimal类型的字段转换成万元显示
*
* @param cls
* @param <T>
* @return
*/
public static <T> T toWan(T cls) {
Field[] fields = cls.getClass().getDeclaredFields();
if (ArrayUtils.isEmpty(fields)) {
return cls;
}
for (Field field : fields) {
if ("BigDecimal".equals(field.getType().getSimpleName())) {
field.setAccessible(true);
try {
Object value = field.get(cls);
if (value != null) {
field.set(cls, StringUtil.getNumberWan((BigDecimal) value));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
return cls;
}
}
将对象的null字段赋值为默认值
于 2023-07-24 10:22:33 首次发布
该代码段展示了一个Java工具类BeanHelper,它主要用于处理Bean中的空字段,将null值替换为默认值(如空字符串、日期、整数、浮点数等),并提供了将BigDecimal字段转换为万元显示的功能。
摘要由CSDN通过智能技术生成