[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()); } }