泛型

来源:互联网 发布:mysql 表触发器 编辑:程序博客网 时间:2024/06/06 17:16

1.为什么需要泛型?

  • 解决元素存储的安全性问题(在没有使用泛型的情况下,任何object及其子类的对象都可以添加进来)
  • 解决获取数据元素时,需要类型强转的问题(在进行强制类型转换时,可能报ClassCastException的异常)

2.JDK要求

JDK1.5。

3.泛型类

  • 一个泛型类(generic class)就是具有一个或多个类型变量的类。
  • Class 类名称<泛型类型,泛型类型,......>{......}
  • 类型参数的魅力在于:使得程序具有更好的可读性和安全性。
  • 在Java库中,使用变量E表示集合的元素类型,K和V分别表示表的关键字与值的类型。T(需要时还可以用临近的字母U和S)表示“任意类型”。

4.术语

ArrayList<E>:E称为类型变量或类型参数

ArrayList<Integer>:称为参数化的类型,其中的Integer称为类型参数的实例或实际参数

ArrayList<Integer>:<> 称为 type of

ArrayList:称为原始类型

5.兼容性

参数化类型与原始类型的兼容性,可以只写一边:Collection<String> c = new Vector(),或者Collection c = new Vector<String>()

参数化类型不考虑类型的继承关系:

数组不能使用泛型。

5.泛型与继承的关系

6.通配符

0 0
原创粉丝点击