亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

方法的冗余聲明

方法的冗余聲明

繁星coding 2023-08-04 15:27:44
我想知道這兩種方法的聲明是否存在邏輯差異:示例1public static <T extends Comparable<? super T>> T findMax(List<? extends T> list)示例2public static <T extends Comparable<? super T>> T findMax(List<T> list)有人告訴我,這部分<? extends T>相當于<T>第一個示例中的通配符,并且通配符是多余的,他建議我使用第二個示例中的代碼。是對的嗎?
查看完整描述

1 回答

?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

他們不一樣。


向這個“某人”展示這個反證:)


class Scratch

{

    interface A extends Comparable<A> {}

    interface B extends A {}


    public static <T extends Comparable<? super T>> T findMax(List<? extends T> list)

    {

        return null;

    }


    public static <T extends Comparable<? super T>> T findMax2(List<T> list)

    {

        return null;

    }


    public static void main(String[] args)

    {

        List<B> listOfBs = new ArrayList<>();


        A foo = Scratch.<A>findMax(listOfBs);  // fine

        A bar = Scratch.<A>findMax2(listOfBs); // compiler error

    }

}


查看完整回答
反對 回復 2023-08-04
  • 1 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號