描述:
if(bank != null)的判断是有问题的:使用new 来创建的对象是满足if(bank != null)这个条件的
方式1:BankInfo bank = null;
方式2:BankInfo bank = new BankInfo();
上面的这个两种方式对于
if(bank != null){
System.out.println("bank有值");
//然后获取bank的内容。。。。。
}else{
System.out.println("bank获取为空");
}
举例:建立一个BankInfo类:
public class BankInfo implements Serializable {
private static final long serialVersionUID = 1L;
//bankCode 银行代码
private String bankCode;
//bankName 银行名称
private String bankName;
//bankAcount 银行帐号
private String bankAccount;
//accountName 账户所有人姓名
private String accountName;
//authorizationStatus 授权状态
private String authorizationStatus;
//certiCode 账户所有人证件号
private String certiCode;
//get和set省略
}
建立一个测试BankTest 类:
import java.lang.reflect.Field;
/**
* @Description:
* @Author:
* @Date: 2021/11/18
*/
public class BankTest {
public static void main(String[] args) {
//BankInfo bank =null;
BankInfo bank = new BankInfo();
//bank.setBankName("中国");
if(bank != null && !checkObjectIsNull(bank)){
System.out.println("不是空对象");
}else{
System.out.println("这是个空壳");
}
}
/**
* 判断对象是否是为空
* @param obj
* @return
*/
public static boolean checkObjectIsNull(Object obj) {
boolean flag = true;
for (Field f : obj.getClass().getDeclaredFields()) {
f.setAccessible(true);
//serialVersionUID是序列化用
if("serialVersionUID".equals(f.getName())){
continue;
}
try {
if (f.get(obj) != null && !"".equals(f.get(obj))) {
flag = false;
return flag;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return flag;
}
}