美文网首页工作生活
泛型生产者和消费者

泛型生产者和消费者

作者: 放纵的卡尔 | 来源:发表于2019-07-01 16:44 被阅读0次
class Inner{

    public void test(){

        List<Sun> sunList=new ArrayList<>();
        List<Fruit> fruitList=new ArrayList<>();
        List<Apple> applesList=new ArrayList<>();
//        test1(sunList);  不允许这么做!
        test1(fruitList);
        test1(applesList);

        test2(sunList);
        test2(fruitList);
//        test2(applesList); 不允许这么做

    }

    /**
     * 生产者  能取不能存; 因为没有下限!
     *
     * @param list
     */
    public void test1(List<? extends Fruit> list){
        Fruit fruit = list.get(0);

    }

    /**
     * 能存,因为有上限,但是存入的必须是T的子类; 上限就是T
     * 算是能取,但是object. 因为队列的上限是没有的!
     * @param list
     */
    public void test2(List<? super Fruit> list){
//        list.add(new Sun()); 不允许
        list.add(new Fruit());
        list.add(new Apple());
        list.add(new RedRicher());
        Object object = list.get(0);
    }

}


class Sun{

}

class Fruit extends Sun{


}

class  Apple extends Fruit{


}


class RedRicher extends Apple{


}


相关文章

网友评论

    本文标题:泛型生产者和消费者

    本文链接:https://www.haomeiwen.com/subject/ivcncctx.html