欢迎光临散文网 会员登陆 & 注册

千锋教育Java入门全套视频教程(java核心技术,适合java零基础,Java

2023-07-19 21:55 作者:永远向上青年  | 我要投稿

泛型的学习与理解

1.为什么要使用泛型

集合的特点是弥补了数组中的某一个不足:数组中元素的数据类型必须是一致的。

在开发中,更加倾向于让集合只存一种数据类型,单一职责原则。

通过使用泛型,约束了集合中元素的数据类型,此时防止数据类型的多样化导致程序的错误。

2.泛型的好处

  • 泛型可以在编译时帮助我们检查数据类型
  • 泛型可以减少数据类型转换,自动转换

3.泛型的形式

示例:LinkedList<Integer> list=new LinkedList<Integer>();

<Integer>就是泛型,可以在<>中指定集合的数据类型,其中后一个<>中的数据类型是可以省略的

4.Java和C# 中泛型的区别

  • Java的泛型是可擦除的,简单地说,java的泛型是只存在于源码中,编译后就没有了,是一种语法糖。(语法糖:计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性)
  • C#的泛型编译后仍然是泛型。(两者的底层实现是完全不同的)

补充说明:两种语言中的泛型的区别的原因是Java是一门向下兼容的语言,要保证无论如何更新版本,都可以运行之前版本的代码,Java语言的开发人员为了在1.5版本中推出泛型并兼容之前的4个版本,才专门设计了现在的这种实现形式;而C#在推出泛型时才更新到第二个版本,使用人数不多,所以语言的开发者直接不需要考虑版本1的使用者,推出全新的泛型即可。


5.个人对泛型的理解

用通俗的语言讲,开始写代码的时候不知道集合中具体放的什么类型的数据,但又要对数据类型进行限制,所以使用泛型类,这样后面实际调用该集合的时候再指定限制的类型即可。

又因为开始在数据类型不确认的时候需要写方法,但是泛型类的数据无法进行实例化(因为java中的泛型是可擦除的,是一种语法糖),所以通过Class类new出对象clazz用在方法中作为参数,同时对Class通过泛型进行数据类型限制,保证和前面new的集合中的数据类型一致。

最终实现在不确定数据类型的情况下对集合中的数据类型进行限制,并可以在不确定数据类型的情况下写方法。



千锋教育Java入门全套视频教程(java核心技术,适合java零基础,Java的评论 (共 条)

分享到微博请遵守国家法律