Java可选:检查几种替代方案(代码更优雅)

Jor*_*rdi -3 java option-type

我想还有另一种更优雅的方式来编写这段代码:

private boolean validateGicarHeaders(HttpServletRequest request) {
    return null != Optional.ofNullable(
           request.getHeader(EspaiDocConstants.Headers.GICAR_HEADER))
  .orElse(request.getHeader(EspaiDocConstants.Headers.HTTP_GICAR_HEADER));
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Lin*_*ica 5

这是 的错误使用Optional,只需使用普通比较和||(OR) 运算符即可:

return 
    request.getHeader(EspaiDocConstants.Headers.GICAR_HEADER) != null || 
    request.getHeader(EspaiDocConstants.Headers.HTTP_GICAR_HEADER) != null;
Run Code Online (Sandbox Code Playgroud)

请记住,Optional引入它是为了指示不存在返回值,并且不能在像if. (遗憾的是我找不到证实这一点的消息来源)