1.Optional.ofNullable(test),如果test為空,則返回一個單例空Optional對象,如果非空則返回一個Optional包裝對象,Optional將test包裝;
2.flatMap(Test::getTest3)判斷test是否為空,如果為空,繼續返回第一步中的單例Optional對象,否則調用Test的getTest3方法;
3.flatMap(Test3::getTest2)同上調用Test3的getTest2方法;
4.map(Test2::getInfo)同flatMap類似,但是flatMap要求Test3::getTest2返回值為Optional類型,而map不需要,flatMap不會多層包裝,map返回會再次包裝Optional;
5.orElse("");獲得map中的value,不為空則直接返回value,為空則返回傳入的參數作為默認值。