Hi!欢迎光临陕西省的权威思科、华为、Oracle、红帽、深信服、微软认证培训中心!
| 029-88235527
您现在所在位置:首页 > 新闻资讯 > 最新资讯 >

java 代码精简之利用程序结构

发布日期:2020-05-13 14:35:01点击次数:

分享到:
java 代码精简之利用程序结构

9.1.返回条件表达式
 
条件表达式判断返回布尔值,条件表达式本身就是结果。
 
普通:
 
public boolean isSuper(Long userId)
    UserDO user = userDAO.get(userId);
    if (Objects.nonNull(user) && Boolean.TRUE.equals(user.getIsSuper())) {
        return true;
    }
    return false;
}
精简:
public boolean isSuper(Long userId)
    UserDO user = userDAO.get(userId);
    return Objects.nonNull(user) && Boolean.TRUE.equals(user.getIsSuper());
}
9.2.最小化条件作用域
最小化条件作用域,尽量提出公共处理代码。
 
普通:
 
Result result = summaryService.reportWorkDaily(workDaily);
if (result.isSuccess()) {
    String message = "上报工作日报成功";
    dingtalkService.sendMessage(user.getPhone(), message);
} else {
    String message = "上报工作日报失败:" + result.getMessage();
    log.warn(message);
    dingtalkService.sendMessage(user.getPhone(), message);
}
精简:
String message;
Result result = summaryService.reportWorkDaily(workDaily);
if (result.isSuccess()) {
    message = "上报工作日报成功";
} else {
    message = "上报工作日报失败:" + result.getMessage();
    log.warn(message);
}
dingtalkService.sendMessage(user.getPhone(), message);
9.3.调整表达式位置
 
调整表达式位置,在逻辑不变的前提下,让代码变得更简洁。
 
普通1:
 
String line = readLine();
while (Objects.nonNull(line)) {
    ... // 处理逻辑代码
    line = readLine();
}
普通2:
for (String line = readLine(); Objects.nonNull(line); line = readLine()) {
    ... // 处理逻辑代码
}
精简:
String line;
while (Objects.nonNull(line = readLine())) {
    ... // 处理逻辑代码
}
注意:有些规范可能不建议这种精简写法。
9.4.利用非空对象
 
在比较对象时,交换对象位置,利用非空对象,可以避免空指针判断。
 
普通:
 
private static final int MAX_VALUE = 1000;
boolean isMax = (value != null && value.equals(MAX_VALUE));
boolean isTrue = (result != null && result.equals(Boolean.TRUE));
精简:
private static final Integer MAX_VALUE = 1000;
boolean isMax = MAX_VALUE.equals(value);
boolean isTrue = Boolean.TRUE.equals(result);