Java中的泛型

Posted 江西昊仔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的泛型相关的知识,希望对你有一定的参考价值。

首先让我们来了解了解什么是泛型?

我先跟大家举个例子,如整理物品。

假如我们有几个箱子,如果没有指定放什么进去,我们是不是可以随便放什么(鞋子、袜子、裤子、衣服等等),而且可以随便放,就会显得非常乱,到时候我们需要拿出来的时候都不方便。

但是,如果我们在放东西的时候,先给箱子贴一个标签,只能标签这一类的,衣服一个箱子、袜子一个箱子、衣服一个箱子,到时候我们需要什么物品,就可以在那个物品的箱子里找,就不要到处乱找,既可以方便我们储存东西,有可以提高查找效率。

所以说,如果我要装什么东西,只要在箱子(class或方法)上贴一个标签(类型参数)就行了,然后就可以装(调用)物品。

 

泛型:

  • "参数化类型",将类型由具体的类型参数化,把类型也定义成参数形式(称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。

泛型是 Java SE5 出现的新特性,

泛型的本质:【类型参数化】或【参数化类型】

泛型的用处参数类型可以用在类、接口和方法。用<E,K,V>,来限制。

泛型的特色:在不创建新的类型的情况下,通过泛型指定的不同类型数据来控制形参具体限制的类型。

 

为什么要用泛型呢?

  • 多种数据类型执行相同的代码,使用泛型可以复用代码
  • 用泛型编写的代码,比用 Object 变量再进行强制类型转换的代码,具有更好的安全性可读性
  • 编辑器中提前做类型检查,增加代码的可读性稳定性

例如:在集合类中使用泛型,取出和操作元素时无需进行类型转换,避免出现 java.lang.ClassCastException 异常

 

 

 

 

 

以上是关于Java中的泛型的主要内容,如果未能解决你的问题,请参考以下文章

java如何获得泛型中的类

如何在 C# 的泛型中使用扩展

Java中的泛型的问题?

泛型中的类型擦除

泛型-类型擦除

java中的泛型T和?的差异性,学习了