泛型讲解

简介: 本章讲解了什么是泛型以及泛型擦除相关的知识点

一、什么是泛型?

  • Java泛型是JDK 5中引⼊的⼀个新特性, 允许在定义类和接口的时候使⽤类型参数。声明的类型参数在使⽤时⽤具体的类型来替换。
  • 泛型最⼤的好处是可以提⾼代码的复⽤性。以List接口为例,我们可以将String Integer等类型放⼊List中, 如不⽤泛型, 存放String类型要写⼀个List接口, 存放Integer要写另外⼀个List接口, 泛型可以很好的解决这个问题。

二、泛型擦除

泛型擦除是Java中的一个特性,在编译阶段将所有泛型信息擦除掉,将泛型类型变为原始类型。这是为了兼容Java的泛型与旧版本的代码。擦除后,泛型类型参数变为其上界类型或Object类型

泛型擦除的例子如下:

// 泛型类publicclassExample<T> {
privateTvalue;
publicExample(Tvalue) {
this.value=value;
    }
publicTgetValue() {
returnvalue;
    }
}
// 使用泛型类Example<Integer>example=newExample<>(10);
Integervalue=example.getValue();  // 在编译后,相当于 Integer value = (Integer) example.getValue();

在编译阶段,Example<Integer>会被擦除为ExampleT会被擦除为Object。因此,在运行时,example.getValue()的返回值会被自动转换为Integer类型。

需要注意的是,泛型擦除只存在于编译阶段,在运行时并不会出现泛型类型。如果需要在运行时获取泛型类型信息,可以使用反射等方式来实现。

相关文章
|
8月前
|
Java
|
8月前
|
安全 算法 Java
深入理解泛型
深入理解泛型
|
存储 安全 Java
泛型的使用
泛型的使用
84 0
|
8月前
|
存储 算法 容器
什么是泛型?
什么是泛型?
33 0
|
8月前
|
存储 Java
什么是泛型, 泛型的具体使用?
什么是泛型, 泛型的具体使用?
|
存储 C#
【C#】什么是泛型?
泛型是C#编程中一个非常重要的概念,它能够编写更加通用、灵活和可重用的代码,能够编写可以在不同类型之间工作的代码,同时还可以提高代码的效率和可维护性。在本文中,我们将探讨泛型及其在C#编程中的应用。
|
存储 Java 编译器
对泛型的认识
对泛型的认识
|
安全 JavaScript Java
泛型中的 T、E、K、V、?等等,究竟是啥?
泛型中的 T、E、K、V、?等等,究竟是啥?
泛型中的 T、E、K、V、?等等,究竟是啥?
|
算法 安全 Java
|
安全 Java 编译器
你了解泛型吗?
面向对象编程中,多态算是一种泛化机制。你可以将方法的参数类型设置为基类,那么该方法就可以接受从这个基类中导出的任何类作为参数,这样的方法将会更具有通用性。此外,如果将方法参数声明为接口,将会更加灵活。

热门文章

最新文章