集合中的元素,可以是任意类型的对象
如果把某个对象放入集合,则会忽略他的类型,而把它当做Object处理
泛型则是规定了某个集合只可以存放特定类型及其子类型的对象,会在编译期间进行类型检查,可以直接按指定类型获取集合元素(不需要再强转)
/** * 带有泛型——Course的List */ public List<Course> courses; public TestGeneric(){ this.courses = new ArrayList<Course>(); } /** * 测试添加 * @param args */ public void testAdd(){ Course cr1 = new Course("1", "课程一"); courses.add(cr1); //泛型集合中,不能添加泛型规定的类型及其子类型以外的对象,否则编译时即报错 } public void testForEach(){ for(Course cr:courses){ System.out.println(cr.id+":"+cr.name);//读取直接可用,不需强转 } }
- 在泛型集合中不仅可以存入泛型规定的类型实例,还可以存入规定类型的子类型的实例
- 泛型集合中的限定类型不能使用基本数据类型(int long boolean等)
- 如果要使用可以通过使用包装类限定允许存入的基本数据类型。对应的如Integer,Long,Boolean等。