从零双排java之泛型

                                    泛型

泛型的作用:标识集合中保存的元素

 * 好处:

 * 1.操作数据更加安全(规范集合中能保存的数据)

 * 2.可以避免向下转型(强转类型)的麻烦

 * 3.将运行时的错误转到编译时报错


ArrayList<Student> list = new ArrayList<Student>();
		list.add(new Student("肖锋", 11));
		list.add(new Student("坤", 52));
		list.add(new Student("大海", 22));
		// 从集合中取出一个元素
		Object object = list.get(0);
		Student student = (Student) object;
		System.out.println(student.getName());
		// 从集合中取出一个元素 强转成 工人类型 调用工人的方法
		// 不加泛型 获取到集合中的元素 元素的类型你可以随便强转
		// 没有约束 编译都会通过
		// 加上泛型 可以在编译时 有错误提示 让集合中保存的元素更加安全

泛型的另一种写法

 * ? extends E

 * 问号是子类  E是父类  

 * 只能使用父类的子类  或者本类  也叫 向下限定

	// 创建一个person集合 保存两个person
		ArrayList<Person> list1 = new ArrayList<>();
		list1.add(new Person("wang1", 11));
		list1.add(new Person("wang2", 11));
		// 常见一个student 集合 保存两个student
		ArrayList<Student> list2 = new ArrayList<>();
		list2.add(new Student("peng1", 21));
		list2.add(new Student("peng2", 21));
		// addAll(Collection<? extends E> c)
		list1.addAll(list2);
		list2.addAll(list1); //向子类中添加父类的集合  这时就会报错

		System.out.println(list1);






猜你喜欢

转载自blog.csdn.net/jsymax/article/details/80397797