Java容器与向下转型、范型

Java容器与向下转型、范型

向下转型:在继承关系中,导出类向上转为基类称为向上转型,这是安全的。相反的过程,基类向下转为导出类称为向下转型,这通常是不安全的,除非你知道向下转型的确切类型,否则会出现异常的运行时错误。
容器:用于解决在某个特定问题中不知道需要存储多少个对象的情况下所发霉的一种新的对象类型,它有对其他对象的引用

那么问题来了:根据单根继承结构,所有对象都最终继承于Object。在Java SE5之前,容器只存储Object类型,那么它将对象引用置入容器时,对象发生向上转型为Object,会使得对象的身份丢失。当取回时,就获取了一个队Object对象的引用,而不是置入时那个确切类型对象的引用?这该怎么办?

这就需要用到参数化类型的概念,称为范型。Java SE5的重大变化之一就是加入了参数化类型

ArrayList<Shape> shapes = new ArrayList<Shape>();

这样就创建一个只保存Shape类型的容器,程序员不需要为向下转型付出心血。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章