PECS原則

PECS原則:Producer Extends Consumer Super

頻繁往外讀取內(nèi)容的,適合用上界Extends。
經(jīng)常往里插入的,適合用下界Super。

        List <? extends Fruit> extendsList = new ArrayList();
        extendsList.add(new Object()); //ERROR
        extendsList.add(new Fruit()); //ERROR
        extendsList.add(new Apple()); //ERROR
        extendsList.add(new Pear()); //ERROR
        Object e1 = extendsList.get(0);
        Fruit e2 = extendsList.get(0);
        Apple e3 = extendsList.get(0); //ERROR
        Pear e4 = extendsList.get(0); //ERROR


        List <? super Fruit> superList = new ArrayList();
        superList.add(new Object()); //ERROR
        superList.add(new Fruit());
        superList.add(new Apple());
        superList.add(new Pear());
        Object s1 = superList.get(0);
        Fruit s2 = superList.get(0); //ERROR
        Apple s3 = superList.get(0); //ERROR
        Pear s4 = superList.get(0); //ERROR

參考:https://itimetraveler.github.io/2016/12/27/%E3%80%90Java%E3%80%91%E6%B3%9B%E5%9E%8B%E4%B8%AD%20extends%20%E5%92%8C%20super%20%E7%9A%84%E5%8C%BA%E5%88%AB%EF%BC%9F/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容