美文网首页测试开发Java编码知识点测试开发那些事儿
详解Java泛型之4——一个例子理解泛型带来的好处

详解Java泛型之4——一个例子理解泛型带来的好处

作者: 测试开发Kevin | 来源:发表于2021-07-08 11:34 被阅读0次

前面我介绍了关于泛型、通配符以及泛型擦除的相关知识点,大家可以参考以下文章:

详解Java泛型之1——入门泛型必懂的知识点

详解Java泛型之2——详解通配符

详解Java泛型之3——十分钟理解泛型擦除

今天我设计一个实例,分别通过重载、Object类型参数以及泛型三种方式来实现这个实例,让大家清楚地体会到使用泛型技术给我们带来的好处!

实例需求

有这样一个需求,自己写一个方法能够比较两个数值的大小,如果相等返回true,否则返回false。

通过重载实现

分析:因为在java中,常用数值包括Integer、Float、Double、Long我们可以利用重载的知识(同名不同参)设计四个方法来实现

public static boolean equal(Integer a,Integer b) {

      if (a.equals(b))

        return true;

      else

        return false;

   }

   public static boolean equal(Double a,Double b) {

      if (a.equals(b))

        return true;

      else

        return false;

   }

   public static boolean equal(Float a,Float b) {

      if (a.equals(b))

        return true;

      else

        return false;

   }

通过Object类型参数实现

很显然像上面这样的设计稍微有些麻烦,我们可以利用Object作为参数,通过一个方法就实现该需求,代码如下:

public static boolean equal(Object a,Object b) {

      if (a.equals(b))

        return true;

      else

        return false;

   }

通过泛型实现

但是像上面这样设计仍然有一个问题,因为参数是Object,所以可以实现equal(123,“abc”) 的比较,这与题目要求不符!题目要求是——比较两个数值的大小,而abc的类型是String。这个时候我们就可以通过泛型的知识来解决该问题了,我们看Integer、Float、Double、Long的源码发现,他们都继承了抽象类Number,于是我们可以使用泛型的边界值的知识点解决该问题,代码如下:

很显然通过泛型的方式实现,不仅让代码量减少了很多,还很容易的控制了参数的传入范围!

相关文章

  • 详解Java泛型之4——一个例子理解泛型带来的好处

    前面我介绍了关于泛型、通配符以及泛型擦除的相关知识点,大家可以参考以下文章: 详解Java泛型之1——入门泛型必懂...

  • 泛型

    java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一Java泛型深入理解加泛型面试数组的协变性与范型的不可变性

  • Java泛型(黑马程序员武汉中心)

    Java泛型 一、概述 1、泛型含义 2、泛型好处 3、泛型分类 二、常见的泛型案例 1、泛型方法 A.定义时 B...

  • 详解Java泛型之3——十分钟理解泛型擦除

    前面我们介绍了泛型以及通配符的基础概念,可以参考文章: 详解Java泛型之1——入门泛型必懂的知识点[https:...

  • 泛型,复习

    Java泛型详解:和Class的使用。泛型类,泛型方法的详细使用实例 - LZJWXJ树袋熊 - CSDN博客

  • Java 泛型擦除原理

    问:请比较深入的谈谈你对 Java 泛型擦除的理解和带来的问题认识? 答:Java 的泛型是伪泛型,因为在编译期间...

  • 泛型(一)

    1. Java中的泛型是什么 ? 使用泛型的好处是什么? 泛型是Java SE 1.5的新特性,泛型的本质是参数化...

  • 赢在面试之Java泛型篇

    1、Java中的泛型是什么 ? 使用泛型的好处是什么? 泛型是Java SE 1.5的新特性,泛型的本质是参数化类...

  • java 泛型

    java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一

  • Java泛型教程

    Java泛型教程导航 Java 泛型概述 Java泛型环境设置 Java泛型通用类 Java泛型类型参数命名约定 ...

网友评论

    本文标题:详解Java泛型之4——一个例子理解泛型带来的好处

    本文链接:https://www.haomeiwen.com/subject/eggzultx.html