天天看点

java心得---泛型

1.集合类的泛型

泛型是JDK1.5后出现的一个安全机制.通过< >来指定容器中元素的类型

好处:1.将运行时期出现的问题转移到编译时期。

2.避免了强制类型转换的麻烦

2. 泛型的思想

消除取用集合元素时代码中的强制类型转换,比如事先规定好一个集合中允许加入的具体元素类型,然后在编译环节实现集合中添加元素的类型检查,以防止有人将非预期类型的元素保存到集合中。

¯    优点

类型错误可以在编译时暴露出来,而不是在运行时才发作(抛ClassCastException),这有助于早期错误排查,并提高程序的可靠性。

3.注意:

(1)JDK5.0后集合类定义像Vector一样都进行了泛型化改造,还有泛型类带有多个类型参数,如Map<K, V>就有两个类型参数,表示键-值映射。

(2)Java语言中的泛型是维护向后兼容的,即我们完全可以不采用泛型,而继续沿用过去的做法。

(3)  在高版本开发环境中编译未启用泛型机制的集合类应用代码时,会输出编译提示信息。

4.当类中操作的引用数据类型不能确定是,就使用泛型类。

类中要操作什么类型的数据不确定,就可以定义一个类型参数。

使用者,传递什么样的类型,那么该类中操作的就是什么类型数据。

5. 为了更好的在定义泛型类时对类型参数进行限制,泛型机制还允许对类型参数进行附加的约束。

¯    <T extends Person>

类型参数为Person类或者Person类的子类

6. 泛型方法:就是将泛型定义在方法上。

¯    泛型定义在类上,该泛型作用于整个类。

¯    将泛型定义在方法上即可让使用泛型的方法操作不同类型数据。

¯    格式:<T> 返回类型方法名(T t)

7. 静态方法不可以使用类中定义的泛型。

因为类中的泛型需要在对象初始化的时,指定具体类型。

  而静态优先与对象存在。

静态方法上定义泛型,一定要写在static关键字的后面。返回值类型的前边。

8.泛型方法使得该方法能够独立于类而产生变化。以下是一个基本指导原则:

   无论何时,只要能做到,就应该尽量使用泛型方法;也就是说,如果使用泛型方法可以取代这个类泛型化,那么就应该只使用泛型方法,因为它可以事情更清楚明白。

下一篇: Java接口