[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());
    }
}
原文地址:https://www.cnblogs.com/jimwind/p/3155681.html