JAVA面试-泛型-A02

泛型

  • 一、为什么需要泛型
  • 二、泛型的定义以及使用方法

一、为什么需要泛型

1、适用于多种数据类型执行重复的代码

class Test {
    public static void main(String[] args) {
        multiplication(2.0,3.1);
    }

    private static int multiplication(int a, int b) {
        System.out.println(a + "*" + b + "=" +  (a*b));
        return a * b;
    }


    private static double multiplication(double a, double b) {
        System.out.println(a + "*" + b + "=" +  (a*b));
        return a * b;
    }

}

观察以上代码,如果没有泛型这一个思想,那么对于每种类型都要进行函数的重载;如果说我们将函数进行提炼使用泛型定义方法,那么我们就可以直接使用一个方法进行涵盖,如下代码:

 public static void main(String[] args) {
        //乘法
        multiplication(2.0,3.1);
        multiplication(1,3);
    }

    private static <T extends Number> double multiplication(T a, T b) {
        System.out.println(a + "*" + b + "=" + (a.doubleValue() * b.doubleValue()));
        return a.doubleValue()  * b.doubleValue();
    }

同时,在面对泛型使用类型时指定,不需要强制类型准换。

二、泛型的定义以及使用方法


注意:java为了兼容之前的版本,在语法上支持泛型,但是在编译阶段会将其所有的泛型都替换为具体的原生态类型,就形如没有泛型一样

你可能感兴趣的:(java,面试)