博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我们为什么要使用泛型程序设计?谁想成为泛型程序员?
阅读量:4149 次
发布时间:2019-05-25

本文共 1049 字,大约阅读时间需要 3 分钟。

前言:泛型正是我们需要的,使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性。泛型对于集合类尤为有用,例如,ArrayList就是一个无处不在的集合类。

泛型程序设计(Generic programming)意味着编写的代码可以被很多不同类型的对象所重用。例如:我们并不希望为聚集String和File对象分别设计不同的类。实际上,也不需要这样做,因为一个ArrayList类可以聚集任何类型的对象。这就是一个泛型程序设计的一个实例。实际上,在Java增加泛型之前已经有一个ArrayList类,下面我们来研究泛型程序设计的机制是如何演变的。

1.类型参数的好处

在Java增加泛型前,都是通过继承实现的。ArrayList类只维护一个Object引用的数组:

public class ArrayList{	private Object[] elementData;	private Object get(int i){....}	private void add(Object o){...}}

这种方法有两个问题。当获取一个值时必须进行强制类型转换。

ArrayList files = new ArrayList();...String filename = (String) files.get(0);

这样一来没有错误检查,可以向数组中添加任何对象,泛型提供了一个更好的解决方案,那就是类型参数ArrayList类有一个类型参数用来指示元素的类型:

ArrayList 
files= new ArrayList
();

如此就不需要进行强制类型转换,编译器就已经知道了返回类型为String,而不是Object。而且编译器可以进行检查,避免插入错误类型的对象。类型参数的魅力在于:使得程序具有更好的可读性和安全性。

2.谁想成为泛型程序员

使用像ArrayList的泛型类很容易。我们大多数程序员都使用ArrayList <String> 这样的类型,就好像它们已经构建在语言中,像String[]数组一样。但是,实现一个泛型类并没有那么容易。

对于类型参数而言,我们都希望在没有过多的 限制和混乱的错误消息的状态下,做所有的事情。所以一个泛型程序员的任务就是预测出所用类的未来可能有的所有用途。

 

--------------如果大家喜欢我的博客,可以点击左上角的关注哦。

转载地址:http://mupti.baihongyu.com/

你可能感兴趣的文章
【Python基础10】探索模块
查看>>
【Python】将txt文件转换为html
查看>>
[Linux]Shell脚本实现按照模块信息拆分文件内容
查看>>
idea添加gradle模块报错The project is already registered
查看>>
在C++中如何实现模板函数的外部调用
查看>>
在C++中,关键字explicit有什么作用
查看>>
C++中异常的处理方法以及使用了哪些关键字
查看>>
如何定义和实现一个类的成员函数为回调函数
查看>>
内存分配的形式有哪些? C++
查看>>
什么是内存泄露,如何避免内存泄露 C++
查看>>
栈和堆的空间大小 C++
查看>>
什么是缓冲区溢出 C++
查看>>
sizeof C++
查看>>
使用指针有哪些好处? C++
查看>>
引用还是指针?
查看>>
checkio-non unique elements
查看>>
checkio-medium
查看>>
checkio-house password
查看>>
checkio-moore neighbourhood
查看>>
checkio-the most wanted letter
查看>>