0

我正在对 Java/Scala/Spring 项目进行大型 Java/Spring 重写。所以我只想检查这是否是正确的做法。

我从 SecuritContext 获取 Spring 用户详细信息。以下代码针对已登录和未登录的用户调用。我想检查检查是否null正确。请告知,因为检查这样的空值感觉不对。

private def getUserDetails : Option[UserDetails] = {
  if(userDetails == null && securityContextFacade.getSecurityContext.getAuthentication != null){
    val details = securityContextFacade.getSecurityContext.getAuthentication.getPrincipal
    userDetails = details.asInstanceOf[UserDetails]
  }
  if(userDetails != null){
    Option(userDetails)
  }
  else{
    None
  }
}
4

1 回答 1

3

没有必要进行后面的检查,因为 Option(...) 已经在内部进行了检查,并且在 null 的情况下评估为 None。所以

if(userDetails != null){
    Option(userDetails)
  }
else{
    None
}

可以写成

Option(userDetails)
于 2013-01-15T15:39:40.997 回答