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 に答える