美文网首页
01-谈谈泛型

01-谈谈泛型

作者: LoveCoding | 来源:发表于2018-01-10 14:24 被阅读0次

泛型在实际开发和面试中都非常重要,所以我们今天来谈谈这个话题

1,什么是泛型

泛型的本质是为了参数化类型,通过泛型指定的不同类型来控制形参具体限制的类型。

举个例子!

我们要定义一个只能存放整数的集合,怎么写?

List list = new ArrayList();

这样对吗?其实不行,这样我们可以往list添加任务数据类型

所以这个时候,解决办法就是采用泛型,可以这么来写

List<Integer> list = new ArrayList<>();

通过参数化类型,就可以限制list可以添加的类型

2,泛型的特点,只对编译期间有效,在运行期间无效(泛型的擦除)

我们来看看,以下这两个集合是同个类型吗?

List list1 = new ArrayList<>();

List list2 = new ArrayList<>();

很明显,在编译期间,两个集合都很好控制了添加的数据类型。

但是,在运行期间,这个类型会被擦除。我们来做个试验就得到这个结论

public static void main(String[] args) {

    Listlist1 = new ArrayList<>();

    List list2 = new ArrayList<>();

    System.out.println(list1.getClass() == list2.getClass());

}

可以试试结果,我打包票,出来的结果是true

3,注意点

泛型的参数类型只能是引用类型,不能是基本数据类型,比如int

4,泛型的使用

4.1 泛型类

public class GenericTest {

    public static void main(String[] args) {

        GenericClassg1 = new GenericClass<();

        g1.setKey(1);

        System.out.println(g1.getKey());

    }

}

class GenericClass{

    private T key;

    public void setKey(T key){

        this.key = key;

    }

    public T getKey(){

        return this.key;

    }

}

4.2 泛型接口

interface GenericInterface{

    public T getNext();

}

相关文章

  • 01-谈谈泛型

    泛型在实际开发和面试中都非常重要,所以我们今天来谈谈这个话题 1,什么是泛型 泛型的本质是为了参数化类型,通过泛型...

  • Java 泛型擦除原理

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

  • 谈谈Java的泛型

    前言 JDK1.5号称是Java最重要的版本更新,而泛型又是JDK1.5中一个最重要的特征。使用泛型机制编写的程序...

  • 谈谈java的泛型

    今天写代码遇到个问题,如下 这个bean在Spring中可以创建的。然后IDEA“智能”的提醒我这个可以写成lam...

  • 泛型 & 注解 & Log4J日志组件

    掌握的知识 : 基本用法、泛型擦除、泛型类/泛型方法/泛型接口、泛型关键字、反射泛型(案例) 泛型 概述 : 泛型...

  • 【泛型】通配符与嵌套

    上一篇 【泛型】泛型的作用与定义 1 泛型分类 泛型可以分成泛型类、泛型方法和泛型接口 1.1 泛型类 一个泛型类...

  • 泛型的使用

    泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法 泛型类 泛型接口 泛型通配符 泛型方法 静态方法与...

  • Java 泛型

    泛型类 例如 泛型接口 例如 泛型通配符 泛型方法 类中的泛型方法 泛型方法与可变参数 静态方法与泛型 泛型上下边...

  • 探秘 Java 中的泛型(Generic)

    本文包括:JDK5之前集合对象使用问题泛型的出现泛型应用泛型典型应用自定义泛型——泛型方法自定义泛型——泛型类泛型...

  • Web笔记-基础加强

    泛型高级应用 自定义泛型方法 自定义泛型类 泛型通配符? 泛型的上下限 泛型的定义者和泛型的使用者 泛型的定义者:...

网友评论

      本文标题:01-谈谈泛型

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