A container object which may or may not contain a non-null value. If a value is present, isPresent() will return true and get() will return the value.
java文檔中對java.util.Optional<T>這個類的說明扣泊,簡要的說明Optional是一個容器類(容器中的對象類型使用泛型),容器中的對象可能為空搏嗡。
java.util.Optional<T>類是一個工具類,幫助我們來處理空對象,避免NullPointException砚哗,個人認為有借鑒google的Guava缸濒。
好了锅知,交代完畢缰儿,進入實戰(zhàn)畦粮。
// 獲取一個 String的 Optional容器
Optional<String> optional = Optional.ofNullable(user.getName());
// 判斷Optional中的對象是否存在
if (optional.isPresent()) {
// 獲取容器中的對象實例。若Optional內(nèi)的對象為空乖阵,則拋出 NoSuchElementException
String name = optional.get();
}
// 對象不為空則返回對象實例,否則返回指定值
String name = optional.orElse("jack");
// Optional中的對象不為空則可直接消費
optional.ifPresent(System.out::println);
以上预麸,是java.util.Optional<T>工具常用的方法瞪浸,java還提供了其他的方法,小哥哥小姐姐自行查閱幫助手冊吧吏祸。
注:Optional.of()对蒲、Optional.ofNullable()得到的容器實例中的對象類型是可推斷的,知識點“類型推斷”不了解的小伙伴可以百度或者google贡翘。