今天做一个导出excel的功能,需要导出八九十个字段,然后发觉一个字段报空指针异常,遂改用三元运算符,
cell2.setCellValue(prpSsalaries.get(i).getFixedSalary()==null?"0":prpSsalaries.get(i).getFixedSalary().toString());
后来发觉很多BigDecimal字段都为空,然后导出的时候报空指针异常,想想不可能这八九十个字段都加判断吧,然后就写了一个工具类,用来转换 Long,BigDecimal为空的(double默认为0,因此可以忽略),默认为0处理,创建一个辅助类,用于测试,代码如下:
import java.math.BigDecimal;
/**
* Created by hanjun on 2020/5/28.
*/
public class Test {
private Long Id;
private String name;
private BigDecimal basicSalary;
private BigDecimal notzero=new BigDecimal(1);
private double salaryAdd;
public Long getId() {
return Id;
}
public void setId(Long id) {
Id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BigDecimal getBasicSalary() {
return basicSalary;
}
public void setBasicSalary(BigDecimal basicSalary) {
this.basicSalary = basicSalary;
}
public double getSalaryAdd() {
return salaryAdd;
}
public void setSalaryAdd(double salaryAdd) {
this.salaryAdd = salaryAdd;
}
public BigDecimal getNotzero() {
return notzero;
}
public void setNotzero(BigDecimal notzero) {
this.notzero = notzero;
}
}
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.math.BigDecimal;
/**
* Created by hanjun on 2020/5/28.
*/
public class NoZeroUtil {
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException{
Test aa=new Test();
System.out.println("name:"+aa.getName());
System.out.println("salaryAdd:"+aa.getSalaryAdd());
System.out.println("basicSalary:"+aa.getBasicSalary());
System.out.println("id:"+aa.getId());
System.out.println("notzero:"+aa.getNotzero());
getbig(aa);
System.out.println("处理后为name:"+aa.getName());
System.out.println("处理后为salaryAdd:"+aa.getSalaryAdd());
System.out.println("处理后为basicSalary:"+aa.getBasicSalary());
System.out.println("处理后为id:"+aa.getId());
System.out.println("处理后notzero为:"+aa.getNotzero());
}
public static void getbig( Object object) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException{
Field[] f=object.getClass().getDeclaredFields();
for(int i=0;i |