iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
JavaScript

大樂透對獎系列 第 26

介面

  • 分享至 

  • xImage
  •  

錯誤值與正確值可能是各種型態,這邊使用泛型來參數化,代表錯誤值Left必須重新定義left方法,若是Left實例,呼叫left就不會拋出例外,record類別是final類別,也就不用加上final修飾了,而代表正確值Right必須重新定義right方法,如此一來,若是Right實例,呼叫right就不會拋出例外。

可以使用Either來作為函式的傳回值。

由於使用了sealed修飾了Either,而且使用record類別實作Left與Right,其他人若要處理傳回值,就必須使用instanceof來比對型態,才知道是錯誤或正確結果,因此使用instanceof並無不妥。

Either的概念來自函數式設計,instanceof相當於模式比對(Pattern matching),未來Java在模式比對語法還會有進一步的加強,使用起來就很方便了。

Either透過left或right時,因為現在都是以Object傳回,你必須知道實例的型態,才可以正確地cast,Java支援泛型(generics),可以運用泛型來定義Either可以有的left、right型態,並請編譯器協助檢查型態的正確性。


上一篇
介面
下一篇
例外
系列文
大樂透對獎30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言