首页 > 体育 >

Java中的数组、集合和泛型(2)

2018-06-01 22:18:26 网络整理 阅读:190 评论:0

我们知道接口、类和方法也都可以使用泛型去定义,以及相应的使用。是的,在具体使用时,可以分为泛型接口、泛型类和泛型方法。如下,我们看一个最简单的泛型类和方法定义:

Java中的数组、集合和泛型(2)

运行:

在泛型接口、泛型类和泛型方法的定义过程中,我们常见的如T、E、K、V等形式的参数常用于表示泛型形参,由于接收来自外部使用时候传入的类型实参。那么对于不同传入的类型实参,生成的相应对象实例的类型是不是一样的呢?

Java中的数组、集合和泛型(2)

运行:

Java中的数组、集合和泛型(2)

以上我们发现,在使用泛型类时,虽然传入了不同的泛型实参,但并没有真正意义上生成不同的类型,传入不同泛型实参的泛型类在内存上只有一个,即还是原来的最基本的类型(本实例中为Box),当然,在逻辑上我们可以理解成多个不同的泛型类型。

究其原因,在于Java中的泛型这一概念提出的目的,导致其只是作用于代码编译阶段,在编译过程中,对于正确检验泛型结果后,会将泛型的相关信息擦出,也就是说,成功编译过后的class文件中是不包含任何泛型信息的。泛型信息不会进入到运行时阶段。

对此总结成一句话:泛型类型在逻辑上看以看成是多个不同的类型,实际上都是相同的基本类型。

五、总结

无论是变量、数组、集合、泛型都是一个容器,能盛放数据,只是“瓶口”不太一样。从盛放一个数据,同种类型的多个数我居,到不同种类的多个数据,容器的发展更加人性化,人类面向对象的思想也在不断的提高。相信未来在学习JAVA的时候,对容器的理解会更加的深入。

相关文章