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);
正文完
 0
admin
版权声明:本站原创文章,由 admin 2016-02-15发表,共计1534字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处:https://www.mlzj.net。