第20章学习有关Java SE5的注解java
第15章中,你将会了解到,使用Java泛型来建立类会很是复杂,可是,应用预约义的泛型一般会很简单。app
ArrayList apples = new ArrayList();学习
apples.add(new Apple());ui
apples.add(new Orange());spa
ArrayList<Apple> apples = new ArrayList<Apple>();//使用了泛型,就能够在编译期防止将错误类型的对象放置到容器中。code
不能添加非Apple的对象。对象
可是能添加Apple的子类对象。blog
将在第17章了解更多有关散列码的内容。io
全部的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()); } }