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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何實(shí)現(xiàn)參數(shù)相同但簽名不同的方法

如何實(shí)現(xiàn)參數(shù)相同但簽名不同的方法

炎炎設(shè)計(jì) 2022-12-07 15:10:52
我必須實(shí)現(xiàn)具有相同功能但返回類型不同且函數(shù)參數(shù)也相同的函數(shù)。public static List<Base> remove(List<Subclass> arrange ) {    List<Base>update = new ArrayList<>();    for(Subclass arranging : arrange){        //For-loop body here    }    return update;}public static List<Subclass> remove(List<Subclass> arrange ) {    List<Subclass>update = new ArrayList<>();    for(Subclass arranging : arrange){        //For-loop body here    }    return update;}  這里Base和Subclass是已經(jīng)定義的類。應(yīng)該只命名一個方法,remove因?yàn)楣δ芟嗤?,所以如果我僅僅因?yàn)椴煌臄?shù)據(jù)類型而兩次實(shí)現(xiàn)相同的方法,就會出現(xiàn)冗余
查看完整描述

3 回答

?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個贊

如果您的方法具有相同的邏輯但參數(shù)類型不同,則可以創(chuàng)建此類方法的通用版本。在您的情況下,這種方法如下所示:


    public static <T> List<T> remove(List<T> arrange) {

        List<T> update = new ArrayList<>();


        for (T arranging : arrange) {

            //For-loop body here

        }

        return update;

    }

然后您可以將此方法與任何T(Base或Subclass) 一起使用,該方法將處理列表中的元素作為參數(shù)傳遞并返回適當(dāng)?shù)念愋停?/p>


        List<Subclass> one = ...;

        one = remove(one);


        List<Base> two = ...;

        two = remove(two);

希望這可以幫助。


查看完整回答
反對 回復(fù) 2022-12-07
?
紅顏莎娜

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

您在這里需要的是泛型方法。

可以使用不同類型的參數(shù)調(diào)用的單個泛型方法聲明。您需要的通用函數(shù)如下所示:

public static < E > List<E> remove( List<E> arrange ) {...}

如果有多個泛型類型并且一個是另一個的子類(例如 BaseClass 和 SubClass),聲明將如下所示

public static < E, F > List<E> remove( List<F extends E> arrange ) {...}

更多信息,您可以參考https://www.tutorialspoint.com/java/java_generics.htm


查看完整回答
反對 回復(fù) 2022-12-07
?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個贊

我看到您所處的情況是,兩種方法幾乎可以做同樣的事情,但向調(diào)用者呈現(xiàn)的結(jié)果卻不同。如果返回類型的域較大,則使用泛型。 public static E remove(List<E> arrange)

如果返回類型有限,您可能會在 Base 和 SubClass 之間建立關(guān)系。并使用協(xié)方差來處理多種返回類型。


查看完整回答
反對 回復(fù) 2022-12-07
  • 3 回答
  • 0 關(guān)注
  • 133 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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