首页
学习
活动
专区
工具
TVP
发布

Java 泛型

使用Java泛型的动机是编译时候检测出错误,避免程序运行时候出错造成严重后果

为了了解泛型的好处,看如下代码。

左边代码将c声明了一个引用变量,它的类型是Comparable,然后调用comparaTo方法来比较Date对象和一个字符串。这样的代码可以编译,但是运行时候会出错。

而右边代码也将c声明为一个引用,它的类型是Comparable,,然后调用comparaTo方法来比较Date对象和一个字符串。这个代码编译就会出错,因为传递给compareTo方法参数必须是Date类型。由于这个错误是在编译时候就被检测出来,因而泛型类型使程序更加可靠

定义泛型类和泛型接口

通过泛型实现一个通用栈结构,代码如下

定义泛型方法

为了声明泛型类方法,将泛型类型至于static之后。例如:

通过编写通用的二分查找法来展示泛型方法。

上图是通用二分查找方法,其中有一个比较重要的概念就是通配泛型,它的作用是对一个泛型类型指定范围上面方法

还有一个可能会存在疑惑的问题是下面的代码。

list[mid].compareTo(key),由代码可以看出list的实际参数其实是个Float包装类的数组,Float类并不存在compareTo方法。这里其实是编译的时候通过通配符进行类型转换。实际上述代码是转换为如下:

总结:使用Java泛型的动机就是在编译时候检测出错误,Java泛型允许定义泛型类,泛型接口和泛型方法,可以通过通配符来指定泛型类型的范围

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180519G1BC7B00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券