[OCPJP]BiFunction的用法

Given the code fragment:

What is the result?
A.

20

B.

20.5

C. A compilation error occurs at line n1.
D. A compilation error occurs at line n2.

題解

BiFunction為可以接受兩個參數的Functional Interface,擷取JDK的程式碼如下:

這題的line n1會發生編譯錯誤,因為BiFunction的回傳泛型型態為Integer,但是第二個參數U的泛型型態為Double。若直接把Integer物件加上Double物件或是int加上double,出來的結果都會是double,double無法隱含式(implicit)轉型為Integer。

若使用顯式(explicit)轉型的話,可以解決這個問題,如下:

如此一來,輸出結果就會是:

20

關於作者

Magic Len

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

相關文章