我正在处理一个请求的响应,我需要确保请求的格式正确,并且对于请求中的不同错误,我需要返回不同的答案。我最后做了嵌套的if语句,在第三个之后,我有点觉得它看起来很混乱,而且可能有错误。所以我来到这里是为了寻求如何修改代码以避免嵌套if语句的建议。
下面是代码:
public <T> ResponseEntity<T> validateRequest(Request request) {
if(agentRepository.findAgentByRequestPoint(request.getPoint()).isPresent()){
if(request.getAdvanced().getFunction().equals("CheckAcc")){
if(ServiceRepository
.findServiceByServiceId(Long.parseLong(request.getAdvanced().getService()))
.isPresent()){
}else{
ResponseEntity.ok((T) response.wrongCheck(1, 4);
}
}else{
ResponseEntity.ok((T) response.wrongCheck(1, 1));
}
}else{
return ResponseEntity.ok((T)ErrorDTO.from(bundle.getString("point.not.set")));
}
}
2条答案
按热度按时间r55awzrz1#
试试这个:
我建议对变量/方法进行更多的验证或空检查,因为像
request.getAdvanced().getFunction().equals("CheckAcc")
或request.getAdvanced().getService()
这样的字段似乎容易受到NPE的攻击。或者至少尝试捕获该方法并记录堆栈跟踪以供将来调试之用。
希望能有所帮助。
guz6ccqo2#
提高代码可读性的最佳方法是将代码拆分为不同的方法:
在某些情况下,我添加了额外的空值检查以避免NPE。
希望对你有帮助:)