首页 > 解决方案 > 避免对 setter Java 进行空检查

问题描述

我有 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 调用。

emp.setName(name!=null?name:null);

标签: javajava-8getter-setter

解决方案


实际上,在您的代码中,检查 null 是不必要的:在每种情况下,由于您刚刚创建了员工对象,因此他的所有字段都是 null,那么如果,例如,id不为 null,setId则将设置一个非 null 值,如果id是,nullsetId不会改变任何东西。

显然,这些考虑只有在构造函数没有以任何方式初始化显示的变量时才有意义。


推荐阅读