Hasor ApiBinder轉(zhuǎn)換

2018-10-05 10:55 更新

在上一個(gè)小節(jié)我們對(duì) ApiBinder 實(shí)現(xiàn)了一個(gè)自定義的擴(kuò)展,并且使用了它。那么下面將會(huì)更加詳細(xì)的講解,ApiBinder的轉(zhuǎn)換機(jī)制。讓我們回顧一下代碼:

TestBinder myBinder = (TestBinder)apiBinder;


在上一個(gè)例子中我們使用的強(qiáng)制類(lèi)型轉(zhuǎn)換來(lái)得到我們的自定義 ApiBinder,倘若我們的擴(kuò)展模塊沒(méi)有部署進(jìn)Hasor。那么這個(gè)代碼就會(huì)發(fā)生類(lèi)型轉(zhuǎn)換異常。

為了避免此類(lèi)問(wèn)題,在強(qiáng)制類(lèi)型轉(zhuǎn)換之前您應(yīng)該先進(jìn)行一下類(lèi)型判斷,例如:

if (apibindr instanceof TestBinder){
   ...
}


除此之外,您還可以這樣來(lái)避免強(qiáng)制類(lèi)型轉(zhuǎn)換:

TestBinder myBinder = apiBinder.tryCast(TestBinder.class);


如果 ApiBinder 的擴(kuò)展模塊部署到了 Hasor 中那么 tryCast 就會(huì)正確返回給您一個(gè) TestBinder。如果沒(méi)有正確配置,它會(huì)返回一個(gè) null。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)