java基础之泛型(Generics)

泛型,广泛存在于各种开源框架及容器集合类中,在我们阅读源码的过程中一定会碰到,作为java基础知识的一个重要模块,对泛型的理解和掌握有助于我们在之后的源码阅读中借鉴框架思想以及在项目开发中灵活应用泛型。

先看几个有关泛型的问题:

java基础之泛型(Generics)_第1张图片

带着这些问题我们一起去探究一下java泛型

1. 什么是泛型

泛型的英文是Generics,翻译成泛型挺形象的,泛,不确定不固定的意思。类比于我们方法中会定义一个A类型的参数,现在是把A类型再进行提炼为一个通用的参数,在具体使用时才确定类型参数的具体类型,所以又叫参数化类型。

2. 为什么需要泛型

我们来看一个简单的例子

java基础之泛型(Generics)_第2张图片

观察上面的两个类,我们会发现除了类型不一样,其他都是一样的,借鉴方法中参数的思想,我们是否可以把类型也抽象成一个参数T,于是就有了下面的写法,在定义类的时候用T去作为类型参数,在实例化对象的时候再确定具体类型。

java基础之泛型(Generics)_第3张图片

我们来验证一下这一个类是否可以实现和两个类的功能

    public static void main(String[] args) {
        Generics1 generics1 = new Generics1(2);
        Generics2 generics2 = new Generics2("rabbit");

        Generics generics3 = new Generics<>(2);
        Generics generics4 = new Generics<>("rabbit");

        System.out.println("generics1:" + generics1.getType());
       

你可能感兴趣的:(Android,java,泛型,android)