private PhmUser getPhmUser(PhmTrustCheck checker, Object[] args) { PhmUser user=null; if (PhmTrustCheck.METHOD_EXM==checker.checkMethod()){ user = SessionUtil.getUser(((HttpServletRequest) args[0]).getSession()); }else if (PhmTrustCheck.METHOD_OPERATE==checker.checkMethod()){ SessionUtil.getUser(((HttpServletRequest) args[1]).getSession()); } return user; } 优化
时间: 2023-07-15 11:15:33 浏览: 48
这段代码中,可以优化的地方有以下几点:
1. 变量命名:变量`checker`和`args`的含义不太明确,可以尝试更具体的命名。
2. 变量初始化:在方法开始时,将变量`user`初始化为`null`,但是在后面的代码中,可能没有赋值就直接返回了,这种情况下会导致空指针异常。可以考虑将变量`user`的赋值提前到各个`if`语句中,或者在方法开始时直接赋一个默认值。
3. 代码逻辑:在第二个`if`语句中,调用了`SessionUtil.getUser()`方法,但并没有将其返回值赋给变量`user`,需要修改为`user = SessionUtil.getUser(((HttpServletRequest) args[1]).getSession());`。
4. `if`语句判断:可以使用`switch`语句代替多个`if`语句,使代码更加清晰。
优化后的代码如下所示:
```
private PhmUser getPhmUser(PhmTrustCheck trustCheck, Object[] args) {
PhmUser user = null;
switch (trustCheck.checkMethod()) {
case PhmTrustCheck.METHOD_EXM:
user = SessionUtil.getUser(((HttpServletRequest) args[0]).getSession());
break;
case PhmTrustCheck.METHOD_OPERATE:
user = SessionUtil.getUser(((HttpServletRequest) args[1]).getSession());
break;
default:
break;
}
return user;
}
```