Java 验证null和set数据的最佳实践
我有这段代码,检查null条件并设置如下所示的数据Java 验证null和set数据的最佳实践,java,Java,我有这段代码,检查null条件并设置如下所示的数据 public EmployeeVO buildEmpVO(EmpInfo empInfo) { EmployeeVO empVo = new EmployeeVO(); if(empInfo.getEmpObject()!=null) { empVo.setLength(empInfo.getEmpObject().getMonths()); }
public EmployeeVO buildEmpVO(EmpInfo empInfo) {
EmployeeVO empVo = new EmployeeVO();
if(empInfo.getEmpObject()!=null)
{
empVo.setLength(empInfo.getEmpObject().getMonths());
}
else
{
empVo.setLength(0);
}
return empVo;
}
此代码有效,但无论如何,代码还是可以改进的。让代码更易于阅读的一种方法是定义一个变量来保存employee对象:
public EmployeeVO buildEmpVO(EmpInfo empInfo) {
EmployeeVO empVo = new EmployeeVO();
EmpObject eo = empInfo.getEmpObject();
if (eo != null) {
empVo.setLength(eo.getMonths());
}
else {
empVo.setLength(0);
}
return empVo;
}
请注意,我没有向方法本身添加对输入
empInfo
的检查。您可能还需要检查这种可能性。如果您使用的是java 8,那么您可以使用可选选项缩短代码
public EmployeeVO buildEmpVO(EmpInfo empInfo) {
EmployeeVO empVo = new EmployeeVO();
Optional.of(empInfo.getEmpObject()).ifPresentOrElse(empObject -> empVo.setLength(empObject.getMonths()),
() -> empVo.setLength(0));
return empVo;
}
但是这和您使用的方法一样好。我将使用
可选的来完成该任务(假设getMonths()
返回int
):
或者,如果您喜欢一行:
empVo.setLength(Optional.ofNullable(empInfo.getEmpObject()).map(empObj -> empObj.getMonths()).orElse(0));
请,被否决的用户可以添加评论来解释原因。从我的错误中吸取教训是非常有用的。这可能是因为你回答了一个离题的问题。这个问题主要是基于观点的,而且过于宽泛。你的情况会更好。这可能是你否决某个问题而不是答案的理由。另一方面,谁说这是离题的?我的回答是一个开放的问题。问题总是从开放开始,直到社区关闭。这并不意味着,尽管它们是开放的,但它们并没有偏离主题。他们只是还没关门。帮助中心指出哪些问题是主题内的,哪些是主题外的。从这里开始:“再次,这可能是否决某个问题而不是答案的理由。在结束之前,你的观点仍然是正确的。我并不是说你错了,但是,如果这是一门精确的科学来决定什么是离题,那么机器人将完成这项工作,而不是用户投票。empVo.setLength(empInfo.getEmpObject().getMonths()!=null?empInfo.getEmpObject().getMonths():0)代码>可能使用一个。老实说,我认为你的书更容易读。
empVo.setLength(Optional.ofNullable(empInfo.getEmpObject()).map(empObj -> empObj.getMonths()).orElse(0));