泛型生产者和消费者

class Inner{

    public void test(){

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

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

    }

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

    }

    /**
     * 能存,因为有上限,但是存入的必须是T的子类; 上限就是T
     * 算是能取,但是object. 因为队列的上限是没有的!
     * @param list
     */
    public void test2(List 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{


}


你可能感兴趣的:(泛型生产者和消费者)