W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在上一個(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。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: