第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何避免實(shí)現(xiàn)所有方法

如何避免實(shí)現(xiàn)所有方法

倚天杖 2023-01-05 10:15:02
我正在為我在很多類(lèi)中使用的回調(diào)使用一個(gè)接口,所以當(dāng)我實(shí)現(xiàn)這個(gè)回調(diào)時(shí),我需要覆蓋所有方法,但我只使用了類(lèi)中的 1 或 2 個(gè)。我怎樣才能避免這種情況?這是回調(diào):public interface DatabaseCallback {    void onContactPhotoSaved();    void onContactPhotoUpdated();    void onContactPhotoDeleted();    void onContactPhotoFounded(ContactInfo item);    void onDataNotAvailable();    void onErrorDuringProcess();    void onContactPhotoLoaded(List<ContactInfo> users);}編輯:這個(gè)有可能??public class DatabaseManagerCallback {public interface ContactInfoInsertCallback{    void onContactPhotoSaved();    void onErrorOcurred();}public interface ContactInfoUpdateCallback{    void onContactPhotoUpdated();    void onErrorOcurred();}public interface ContactInfoDeleteCallback{    void onContactPhotoDeleted();    void onErrorOcurred();}public interface ContactInfoFoundedCallback{    void onContactPhotoFounded(ContactInfo item);    void onErrorOcurred();}}
查看完整描述

4 回答

?
不負(fù)相思意

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊

編寫(xiě)一個(gè)實(shí)現(xiàn)所有功能但每個(gè)功能都為空的類(lèi)。然后從中擴(kuò)展您的類(lèi),以便它們繼承空主體函數(shù)。

如果您是接口類(lèi)的所有者,您還可以考慮為他們提供一個(gè)默認(rèn)的不執(zhí)行任何操作的實(shí)現(xiàn)。但是,如果它是一個(gè)庫(kù)類(lèi),那是行不通的。


查看完整回答
反對(duì) 回復(fù) 2023-01-05
?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊

您可以在接口中添加默認(rèn)實(shí)現(xiàn),這樣您就不需要重寫(xiě)所有方法:


public interface DatabaseCallback {


    default void onContactPhotoSaved() {}


    default void onContactPhotoUpdated() {}


    default void onContactPhotoDeleted() {}


    default void onContactPhotoFounded(ContactInfo item) {}


    default void onDataNotAvailable() {}


    default void onErrorDuringProcess() {}


    default void onContactPhotoLoaded(List<ContactInfo> users) {}


}

如果需要,這將允許您使用您的實(shí)現(xiàn)擴(kuò)展另一個(gè)類(lèi)。


如果接口來(lái)自庫(kù)并且您無(wú)法修改它,則可以創(chuàng)建一個(gè)中間接口來(lái)擴(kuò)展第一個(gè)接口并添加默認(rèn)實(shí)現(xiàn)。然后你實(shí)現(xiàn)你的接口。


public interface MyDatabaseCallback extends DatabaseCallback {


    @Override default void onContactPhotoSaved() {}


    @Override default void onContactPhotoUpdated() {}


    @Override default void onContactPhotoDeleted() {}


    @Override default void onContactPhotoFounded(ContactInfo item) {}


    @Override default void onDataNotAvailable() {}


    @Override default void onErrorDuringProcess() {}


    @Override default void onContactPhotoLoaded(List<ContactInfo> users) {}


}


查看完整回答
反對(duì) 回復(fù) 2023-01-05
?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊

使用 Java 語(yǔ)言的接口實(shí)現(xiàn)只能做兩件事:

  • 實(shí)施所有方法(如您所說(shuō))。

  • 只實(shí)現(xiàn)幾個(gè)方法并聲明類(lèi)抽象(因此,你不能實(shí)例化它)。

根據(jù)您想要執(zhí)行的操作,您可以創(chuàng)建一個(gè)類(lèi)來(lái)實(shí)現(xiàn)具有某種默認(rèn)行為的所有方法,然后重寫(xiě)您需要在每種情況下定義的方法。


查看完整回答
反對(duì) 回復(fù) 2023-01-05
?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

您可以創(chuàng)建一個(gè)實(shí)現(xiàn)所有方法的類(lèi),然后從它繼承:



public class MyDatabaseCallback implements DatabaseCallback{


    @Override void onContactPhotoSaved(){}


    @Override void onContactPhotoUpdated(){}


    @Override void onContactPhotoDeleted(){}


    @Override void onContactPhotoFounded(ContactInfo item){}


    @Override void onDataNotAvailable(){}


    @Override void onErrorDuringProcess(){}


    @Override void onContactPhotoLoaded(List<ContactInfo> users){}


}

現(xiàn)在,您所要做的就是繼承自MyDatabaseCallback:


public class MyCustomDatabaseCallback extends MyDatabaseCallback {

    @Override void onDataNotAvailable(){

        // TODO

    }

}


查看完整回答
反對(duì) 回復(fù) 2023-01-05
  • 4 回答
  • 0 關(guān)注
  • 189 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)