[Java编程思想]第11章 持有对象

第20章学习有关Java SE5的注解

第15章中,你将会了解到,使用Java泛型来创建类会非常复杂,但是,应用预定义的泛型通常会很简单。

ArrayList apples = new ArrayList();

apples.add(new Apple());

apples.add(new Orange());

ArrayList<Apple> apples = new ArrayList<Apple>();//使用了泛型,就可以在编译期防止将错误类型的对象放置到容器中。

不能添加非Apple的对象。

但是能添加Apple的子类对象。

将在第17章了解更多有关散列码的内容。

所有的Collection都可以用foreach语法遍历,本章后续学习“迭代器”。

public class AddingGroups{

    public static void main(String[] args){

        

        Collection<Integer> collection = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));

        Integer[] moreInts = {6,7,8,9,10};

        collection.addAll(Arrays.asList(moreInts));

        Collection.addAll(collection, 11,12,13,14,15);    

        Collection.addAll(collection, moreInts);

        List<Integer> list = Arrays.asList(16,17,18,19,20);

        list.set(1,99);

        //list.add(21); //Runtime error.

    }

}

 

class Snow{}



class Power extends Snow{}

class Crusty extends Snow{}

class Slush extends Snow{}



class Light extends Power{}

class Heavy extends Power{}



public class AsListInference{

    public static void main(String[] args){

        List<Snow> snow1 = Arrays.asList(new Crusty(), new Slush(), new Power());

        

        //Won't compile

        //List<Snow> snow2 = Arrays.asList(new Light(), new Heavy());

        //Compiler says:

        //found:    java.util.List<Power>

        //required:java.util.List<Snow>



        List<Snow> snow3 = new ArrayList<Snow>();

        Collections.addAll(snow3, new Light(), new Heavy());



        List<Snow> snow4 = Arrays.<Snow>asList(new Light(), new Heavy());

    }

}

 

 

 

 

 

 

你可能感兴趣的:(java编程思想)