Java中避免写嵌套if样式的代码详解-创新互联

前言

创新互联建站专注于富川企业网站建设,响应式网站,商城系统网站开发。富川网站建设公司,为富川等地区提供建站服务。全流程按需定制开发,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

Optional的代码相对更加简洁,当代码量较大时,我们很容易忘记进行null判定,但是使用Optional类则会避免这类问题。

下面这是一个嵌套的 if 判断,业务逻辑是从 httpRequst 中获取 X-Auth-Token 的值。逻辑是如果 header中有值则从 header 中取值否则从 cookie 中取值,取到值后调用一个 http 远程接口 获取用户信息,获取不到则报“获取用户信息失败”,如果 token 都不存在则直接返回 httpRespons 为 401-NoAuth

这下面是之前同事写的代码

if 嵌套代码

if (methodNeedAuth) {
 //***身份验证
 String token = request.getHeader("X-Auth-Token");
 if (StringUtils.isEmpty(token)) { // 如果 header 中没有 X-Auth-Token 则从 cookie 中取
 Cookie[] cookies = request.getCookies();
 if (cookies == null || cookies.length == 0) { //cookie 都为 null
  return returnNoAuthResult(response);
 } //这个地方判空,否则下面的 Arrays.stream 回报空指针异常
 token = Arrays.stream(cookies).filter(cookie ->
  "X-Auth-Token".equals(cookie.getName())
 ).collect(Collectors.toList()).get(0).getValue();
 if (token == null) { // cookie 有值但是 cookie 中没有 X-Auth-Token
  return returnNoAuthResult(response);
 }
 }
 if (!StringTool.isNullOrEmpty(token)) {
 userInfo = userService.getUserInfoByToken(token);
 }
 if (userInfo == null || StringTool.isNullOrEmpty(userInfo.getUser_id())) {
 return returnNoAuthResult(response);
 }
}

新闻标题:Java中避免写嵌套if样式的代码详解-创新互联
标题路径:http://bzwzjz.com/article/dhsgje.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都企业网站建设 网站设计制作 成都网站建设 手机网站建设 成都网站制作 成都网站设计 成都网站设计 成都网站建设 成都网站设计 网站制作 重庆电商网站建设 重庆外贸网站建设 定制网站设计 营销型网站建设 成都网站建设公司 攀枝花网站设计 成都品牌网站设计 成都网站设计 网站设计制作报价 做网站设计 成都网站制作 成都网站设计制作公司