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

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

java方法重載參數(shù)中的list類型

java方法重載參數(shù)中的list類型

寶慕林4294392 2019-03-01 10:32:22
我定義了2個(gè)方法: public static String getJsonArray(List<Organization> list) { return ""; } public static String getJsonArray(List<User> list) { return ""; } 用于將用戶數(shù)組或者組織數(shù)組轉(zhuǎn)為json字符串。我在聲明及使用的時(shí)候應(yīng)該是明確知道我想要用哪個(gè),并且希望程序也能自動(dòng)判斷并調(diào)用。但是實(shí)際上,eclipse編譯的時(shí)候會(huì)報(bào)錯(cuò)說方法重復(fù)了,因?yàn)樗J(rèn)為這兩個(gè)方法的參數(shù)都是List,而不會(huì)去計(jì)較List里面的參數(shù)類型是什么。那么問題來了,我該怎么寫才能達(dá)到類型重載的效果?有嘗試用泛型,但是以前沒在數(shù)組中用過,試了幾次都是報(bào)錯(cuò),不知道該怎么寫了。另外也不要跟我說什么方法名稱改成不一樣之類的傻話,那個(gè)我也知道的。既然遇到了,我就想試試能否用重載的思想來解決這個(gè)問題。
查看完整描述

5 回答

?
30秒到達(dá)戰(zhàn)場(chǎng)

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

你說的情況就不能運(yùn)用重載,只能寫在一個(gè)方法里面。
我寫個(gè)偽代碼提供個(gè)思路,你看合不合適

public static String getJsonArray(List<Object> list) {
        if(list.size()==0)
            return "";
        else
            for (Object object : list) {
                if(object instanceof User)
                    .......
                    return "";
                    else if(object instanceof Organization)
                        .......
                        return "";
                    
            }
    }
查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
絕地?zé)o雙

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

類型擦除。也就是在編譯后,List<Organization>和List<User>都會(huì)被List<Object>。所以泛型不能作為方法重載的區(qū)分標(biāo)識(shí)。

查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
慕的地10843

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

你這個(gè)不符合重載的條件,泛型不是很好能解決這個(gè)問題么?
public static String getJsonArray(List<T> list) {

return "";

}

查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
慕后森

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

這種我覺得你應(yīng)該自定義類類型來弄然后直接就是

public static String getJsonArray(Organization list) {
    return "";
}

public static String getJsonArray(User list) {
    return "";
}

然后具體的原本類你最好提供一個(gè)getData()的接口返回一個(gè)List類型的數(shù)據(jù)

查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
qq_遁去的一_1

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

我覺得最簡單的就是用泛型來做啊,雖然有類型擦除,但是你完全可以把方法的參數(shù)就用List<T>這個(gè)類型,

<T> String getJsonArray(List<T> list) {方法體}

這樣調(diào)用的時(shí)候直接用類似

List<XXXX> list = new ...();  
getJsonArray(list);

這樣的調(diào)用就可以了啊

查看完整回答
反對(duì) 回復(fù) 2019-03-01
  • 5 回答
  • 0 關(guān)注
  • 1273 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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