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

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

如何調(diào)用有界JAVA的泛型參數(shù)化方法?

如何調(diào)用有界JAVA的泛型參數(shù)化方法?

慕運(yùn)維8079593 2023-02-16 16:56:15
我想知道如何調(diào)用有界參數(shù)化方法。例如,我有以下方法:  public static<R extends Reader & Runnable> R foo(R r) {         r.run();         return r;  }我想知道如何調(diào)用這個方法。我嘗試以下代碼:    private static class Test extends Reader implements Runnable {        ...........    }    private static <T extends extends & Runnable> T getInstance() {        return (T) new Test();     }    public static void main(String[] args) {        foo(getInstance());    }但我有以下例外:線程“main”中的異常 java.lang.ClassCastException:類 ent.Main$Test 無法轉(zhuǎn)換為類 java.lang.Runnable(ent.Main$Test 在加載程序“app”的未命名模塊中;java.lang.Runnable 是在加載程序“bootstrap”的模塊 java.base 中)而且我找不到解決方案。有人可以有想法嗎?先感謝您 !
查看完整描述

1 回答

?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗 獲得超7個贊

這:

private static <T extends Reader & Runnable> T getInstance() {

意味著該方法可以返回可以轉(zhuǎn)換為任何既擴(kuò)展Reader又實現(xiàn)的類的東西Runnable。但是,只有一個這樣的值可以安全地返回:

return null;

其他任何事情都可能導(dǎo)致ClassCastException. 特別是,return new Test();只有當(dāng)您碰巧在期望收到Test.

通常,如果形式參數(shù)中沒有特征,則無法T從方法中安全地返回非空值。有關(guān)詳細(xì)信息,請參閱Error Prone 的檢查T文檔。TypeParameterUnusedInFormals

如果要返回Testfrom的實例getInstance(),請刪除泛型并設(shè)置返回類型Test。

private static Test getInstance() {
    return new Test(); 
}


查看完整回答
反對 回復(fù) 2023-02-16
  • 1 回答
  • 0 關(guān)注
  • 80 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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