2013-01-15 14 views
0

我正在做一個Java/Spring重寫成一個Java/Scala/Spring項目。所以我只想檢查這是否是正確的事情。Scala Spring檢查null代碼段

我從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 
    } 
} 

回答

2

沒有必要進行後面的檢查,因爲Option(...)已經在內部執行了,如果爲null,則計算爲None。所以

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

可以寫成

Option(userDetails) 
+1

這可能是有趣的是,一些'(空)',而另一方面,不等同於'None'。 –

+0

非常感謝。完美的答案。 1+ –