[OCPJP]Optional的用法

Given the code fragments:

and

What is the result?

A.

New York

B.

City Not available

C.

null

D. A NoSuchElementException is thrown at run time.

題解

Optional類別的ofNullable方法允許傳入參考為null的物件參數,來產生Optional物件。由於第41行的address變數為null,因此會產生出空的Optional物件。

程式第42行,利用空的Optional物件來實體化新的Employee物件,這個沒有問題。

程式第43行,先判斷Optional物件的內容是否存在,由於這裡使用的Optional物件是空的,因此會將「City Not available」字串參考指派給eAddress變數儲存。

最後輸出「City Not available」。

若在程式有執行到「addrs1.get()」,將會因為addrs1所參考到的Optional物件的內容是空的,而拋出NoSuchElementException例外。但在這個題目中,使用了三元條件運算子來控制程式的流程,所以不會執行到「addrs1.get()」。

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章