java8學習筆記01 Optional物件替代Null判斷

高傲的蕃茄發表於2020-12-19

應用Optional物件的意義

  • 當一個物件宣告為Optional型別時,可以清晰地表達你的業務中,這個物件可能存在,也可能不存在,而對於那些明確需要存在的物件,則明確指定其為具體的型別,如String A,如果物件A不存在,那麼直接丟擲NPE異常,所以引入Optional物件可以更明確定位錯誤的原因
  • 當一個物件需要根據是否為空來做多種條件判斷時,使用Optional就可以讓程式碼很簡潔,如:
Optional<String> username = Optional
        .ofNullable(getUserById(id))
        .map(user -> user.getUsername())
        .map(name -> name.toLowerCase())
        .map(name -> name.replace('_', ' '));
        
System.out.println("Username is: " + username.orElse("Unknown"));
Optional<String> username = Optional
        .ofNullable(getUserById(id))
        .filter(user -> user.getId() < 10)
        .map(user -> user.getUsername());
        
System.out.println("Username is: " + username.orElse("Unknown"));

參考連結

Java8(5):使用 Optional 處理 null

相關文章