我有Employee类,并且正在设置其属性,
Employee emp = new Employee();
if (id != null)
emp.setId(id);
if (name != null)
emp.setName(name);
if (dept != null)
emp.setDepartment(dept);
if (subDept != null)
emp.setSubDepartment(subDept);
我的问题是,我们可以避免对每个属性设置器进行空检查吗?
我不能使用三元运算符,因为在这种情况下,即使value为null也将调用setter。我想避免setter调用,如果value为null。
emp.setName(name!=null?name:null);
最佳答案
实际上,在您的代码中,不必检查null:在每种情况下,由于您刚刚创建了employee对象,因此他的所有字段均为null,然后,例如,如果id
不为null,则setId
将设置一个not。空值,如果id
是null
,则setId
不会更改任何内容。
显然,只有在构造函数未以任何方式初始化变量的情况下,这些注意事项才有意义。