泛型程序设计是程序设计语言的一种风格或范式。范式允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。
在本次的Lab2(Poteic Walks)中,我们使用到了泛型,将原本的顶点类型由String抽象化为泛型L。那么,我们在使用泛型时应该注意什么问题?那就是JAVA语言基本的语法问题:Java 泛型的参数只可以代表类,不能代表个别对象。由于Java泛型的类型参数之实际类型在编译时会被消除,所以无法在运行时得知其类型参数的类型,而且无法直接使用基本值类型作为泛型类型参数。而在本次实验中,我们用泛型L代替了原本的String类,符合语法要求。
在程序中使用范式又有哪些好处?首先是可以提高JAVA程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。其次是可以消除强制类型转换。在最开始实例化时使用的时什么数据类型存储,取出数据时还是什么数据类型。
在本次实验中,最直观的体会就是使用泛型可以提高程序的复用性。编写程序时,如果不使用泛型,下次遇到功能相似但数据类型截然不同的程序时还得从零开始。但使用泛型则不然,泛型对数据类型的要求较为灵活,根据不同的实例化可以解决不同类型的问题。