2017-03-21 13 views
-5

この方法でget()メソッドを使用していますか?Java 8オプションのget()メソッド

Optional<User> loginUser = userService.findUserByEmail(authentication.getName()); 

if (loginUser.isPresent()) { 
    User user = loginUser.get(); 
    user.setLastLogin(new Date()); 
    userService.saveUser(user); 
} 
+3

この特定のシナリオでは、例外をスローする代わりに空の結果を返す可能性があるコードを文書化することを除いて、 'null'を使用することよりも利点がほとんどありませんが、それを使用する方法の1つです例えば)。 – Kayaman

+0

問題は、エンドユーザーがログインしていないとどうなりますか?あなたは何も間違っているようにアプリケーションがちょうど行くことを続けますか? – VGR

答えて

1
loginUser.ifPresent(user -> { 
    user.setLastLogin(new Date()); 
    userService.saveUser(user); 
}); 

よりエレガント。 isPresent() is bad for you.

+0

isPresent()は(時々)悪いですが、あなたのコードは異なる構文で同じことをやっています。 – VGR

関連する問題