昨天写代码的时候遇到一个问题。本来想将for循环里面的几个字段相加,如果为空就跳出当前循环,但是debug时发现这几个字段为null,相加的结果是“nullnullnullnullnull”,然后就想到用三目算法进行处理。
这里有两点值得注意,第一个是三目运算的写法: 表达式1? 表达式2: 表达式3 ,这里的表达式2和3是我们需要返回的结果。与jsp页面的data-formatter="function(date){ if(date=='' || date == null) return ''; return new Date(parseInt(date)).Format('yyyy-MM-dd')}区分。
第二个是String类型的数据相加为空或null的情况。
String ownerName2 = hspPsmServiceObj2.getOwnerName();
ownerName2 = (ownerName2 == null) ? "" : ownerName2;
String ownerEnterpriseAbbreviation2 = hspPsmServiceObj2.getOwnerEnterpriseAbbreviation();//企业简称
ownerEnterpriseAbbreviation2 = (ownerEnterpriseAbbreviation2 == null) ? "" : ownerEnterpriseAbbreviation2;
String ownerEmployeeNum2 = hspPsmServiceObj2.getOwnerEmployeeNum();//员工工号
ownerEmployeeNum2 = (ownerEmployeeNum2 == null) ? "" : ownerEmployeeNum2;
String ownerEmployeeIdType2 = hspPsmServiceObj2.getOwnerEmployeeIdType();//证件类型
ownerEmployeeIdType2 = (ownerEmployeeIdType2 == null) ? "" : ownerEmployeeIdType2;
String ownerEmployeeIdNum2 = hspPsmServiceObj2.getOwnerEmployeeIdNum();//证件编号
ownerEmployeeIdNum2 = (ownerEmployeeIdNum2 == null) ? "" : ownerEmployeeIdNum2;
String owner = ownerName2+ownerEnterpriseAbbreviation2+ownerEmployeeNum2+ownerEmployeeIdType2+ownerEmployeeIdNum2+"";
if(owner == null || "".equals(owner)){
break;
}else{
}