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.泛型方法使得该方法能够独立于类而产生变化。以下是一个基本指导原则:
无论何时,只要能做到,就应该尽量使用泛型方法;也就是说,如果使用泛型方法可以取代这个类泛型化,那么就应该只使用泛型方法,因为它可以事情更清楚明白。