lis*_*isa 2 java getter constructor
所以我有一个带有5个不同变量的构造函数,其中三个可能为null.它接受用户输入,用户无需为五个属性中的三个输入任何内容.
因此,如果用户未输入任何内容,则使用null为所有缺失值创建对象.
obj = new Object(String, null, null, null, String);
Run Code Online (Sandbox Code Playgroud)
现在我想知道什么是最好的做法来应对这一点.
我可以想到三种不同的场景:
if(getSomeAttribute == null) { //do something }isAttributeSet(),返回一个布尔值,指示属性是否已设置,即:not null.虽然我在后两个方面遇到问题,但我认为我可能会遇到默认值的问题,因为有时很难知道它是否是默认值; 如果我总是检查我也可以检查null而不是先插入默认值;
与最后一个相同,如果我必须检查辅助方法,我也可以直接检查null.
我的问题是这种情况,有时我可能不是那个使用getter和setter方法的人; 如何使用它知道可能有null属性,哪些属性.
我知道,我应该在我的对象类中记录,但我仍然想知道是否有一种"最佳实践"的方式来应对这种情况.
我认为总是检查纪录片(或者如果没有,整个班级)这样简单的事情应该是不寻常的.
也许我首先不应该在构造函数中以null值开头?但我认为无论如何我会遇到同样的问题,所以这不会真正解决我的问题
阅读Bloch,Effective Java,第2版.第2项:"在面对许多构造函数参数时考虑构建器."
一本优秀书中的优秀建议.