java判断一个对象是否为空_如何判断一个对象的内容是否为空

本文探讨了在Java中如何判断一个对象的所有字段是否为空,初始尝试通过反射检查字段值,但遇到了问题,如未考虑基本类型默认值和对象默认值。最终提出通过创建默认初始化对象进行equals比较来简化判断,并考虑到Spring MVC中Converter的行为,指出在无内容提交时,形参对象的处理方式。
摘要由CSDN通过智能技术生成

原因

使用Controller的形参及注解@ModelAttribute来接收页面传来的数据,但是该形参类型中的属性过多,不想一一判断,就想有没有偷懒的方法。

搜索一番,找到一个不错的思路:利用反射获取所有字段,再判断内容是否为null。

初步代码如下

/*** 注意,如果order是null,也返回true。

*

*@paramorder

*@return

*/

private booleanisOrderAllFieldNull(Order order){if(order == null){return true;

}

Class cls = Order.class;

Field[] fields=cls.getDeclaredFields();for(Field field : fields){try{field.setAccessible(true);if(field.get(order)!=null){return false;

}

}catch(IllegalAccessException e){

}

}return true;

}

问题

上面的代码有不少问题,例如没考虑排除serialVersionUID,甚至没考虑基本类型是有默认值的,更没考虑Order中的属性可能设有默认值。。。

貌似离题万里了,但是因为这里需要的是判断页面有无传值进来,而不是真的判断Order对象的内容是否为空!

就是说,前面的出发点错了!囧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值