人狠话不多,直接看代码吧!!!
/**
* 将实体类的字段内容转成List
* @param start 解析实体类的开始字段
* @param end 解析实体类的结束字段
* @param obj 实体类
* @param arraryList
*/
private void coverObjToList(Integer start, Integer end, Object obj, List<String> arraryList) {
if (ObjectUtil.isEmpty(obj)){
return;
}
Field[] declaredFields = obj.getClass().getDeclaredFields();
if (ObjectUtil.isEmpty(start)) {
start = 0;
}
if (ObjectUtil.isEmpty(end)) {
end = declaredFields.length;
}
try {
try {
for (int i = start; i <= end; i++){
Field f = obj.getClass().getDeclaredField(declaredFields[i].getName());
// 在反射时允许访问私有变量
f.setAccessible(true);
Object o = f.get(obj);
if (ObjectUtil.isEmpty(o)){
arraryList.add("");
} else {
if (f.getType() == Double.class) {
// 解决导出金额变成科学计数法的问题,保留两位小数
DecimalFormat decimalFormat = new DecimalFormat("0.00");
arraryList.add(decimalFormat.format(o));
} else {
arraryList.add(o.toString());
}
}
}
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} catch (SecurityException e) {
e.printStackTrace();
}
}