我正在对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
}
}
答案 0 :(得分:3)
没有必要进行后面的检查,因为Option(...)已在内部执行,并且在null的情况下求值为None。所以
if(userDetails != null){
Option(userDetails)
}
else{
None
}
可以写成
Option(userDetails)