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

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

當(dāng)接口沒(méi)有它時(shí)訪問(wèn)抽象類(lèi)中的方法的最佳方法是什么?

當(dāng)接口沒(méi)有它時(shí)訪問(wèn)抽象類(lèi)中的方法的最佳方法是什么?

紫衣仙女 2022-12-28 16:25:43
基于某人編寫(xiě)的現(xiàn)有架構(gòu),我需要擴(kuò)展我的實(shí)現(xiàn)。讓我用一個(gè)示例代碼來(lái)解釋?zhuān)篿nterface Configuration{   public String getPID();   public void display(); }public abstract class BaseConfiguration implements Configuration {     @Override     public String getPID(){          //some code here     }     @Override     public void display(){          //some code here     }     abstract public <T> T clone(Dictionary<String, Object> properties,       Class<T> clazz);}public class XMLConfiguration extends BaseConfiguration{    public <T> T clone(Dictionary<String, Object> properties,       Class<T> clazz){      // implementation       }}public class ConfigurationAdmin{     public static Configuration getCondfiguration(){        return new XMLConfiguration();     }}我可以理解無(wú)法clone從接口調(diào)用方法。Configuration conf = ConfigurationAdmin.getConfiguration();conf.clone(someDictionary, Foo.class) // Gives compilation error調(diào)用克隆方法的最佳方式是什么?
查看完整描述

3 回答

?
開(kāi)心每一天1111

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

BaseConfiguration如果對(duì)象實(shí)例通過(guò)instanceof檢查,您可以在轉(zhuǎn)換為之后調(diào)用它:


if (o instanceof BaseConfiguration) {

  ((BaseConfiguration) o).clone(someDictionary, Foo.class);

} else {

   throw new AssertionError("Does not extend BaseConfiguration");

}


查看完整回答
反對(duì) 回復(fù) 2022-12-28
?
慕村9548890

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

如果所有配置都應(yīng)該是可克隆的,只需將其添加到Configuration.


如果不是全部 - 做類(lèi)似的事情


interface CloneableConfiguration extends Configuration {

    public <T> T clone(Dictionary<String, Object> properties, Class<T> clazz);

}

然后


public class XMLConfiguration extends BaseConfiguration implements CloneableConfiguration {

    ...

}

但永遠(yuǎn)不要在你的陳述中使用具體的實(shí)現(xiàn)。


查看完整回答
反對(duì) 回復(fù) 2022-12-28
?
哈士奇WWW

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

投射你的Configuration對(duì)象。由于 API 不在您手中,因此請(qǐng)使用instanceof安全檢查


Configuration conf = ConfigurationAdmin.getConfiguration();

if(conf instanceof BaseConfiguration) {

    BaseConfiguration base = (BaseConfiguration) conf;

    base.clone();

}

else {

    // throw an exception of log an error

}


查看完整回答
反對(duì) 回復(fù) 2022-12-28
  • 3 回答
  • 0 關(guān)注
  • 109 瀏覽
慕課專(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)