当前位置: 首页 > 科技观察

Java泛型详解(四)一个例子了解泛型的好处

时间:2023-03-12 21:46:55 科技观察

今天我设计了一个例子,通过重载、Object类型参数和泛型来实现这个例子,让大家可以清楚的看到给我们带来的好处通过使用通用技术!实例需求就有这样的需求。编写一个方法来比较两个值的大小。如果它们相等,则返回true,否则返回false。通过重载分析:因为在java中,常用的值有Integer、Float、Double、Long,我们可以利用重载的知识(同名不同参)设计四个方法来实现publicstaticbooleanequal(Integera,Integerb){if(a.equals(b))返回真;否则返回假;;}很明显上面的设计有点繁琐。我们可以使用Object作为参数,通过一个方法来实现这个需求。代码如下:publicstaticbooleanequal(Objecta,Objectb){if(a.equals(b))returntrue;elsereturnfalse;}是通过泛型实现的,但是上面的设计还是有问题,因为参数是Object,所以可以实现equal(123,"abc")的比较,不符合题目要求!题目要求是——比较两个值的大小,abc的类型是String。这时候,我们就可以利用泛型的知识来解决这个问题。我们查看Integer、Float、Double、Long的源码,发现它们都继承了抽象类Number,所以我们可以利用泛型边界值的知识来解决问题。对于这个问题,代码如下:很明显,它是用泛型的方式实现的,这样不仅减少了很多代码量,而且也很容易控制参数的传入范围!