首先让我们来了解了解什么是泛型?
我先跟大家举个例子,如整理物品。
假如我们有几个箱子,如果没有指定放什么进去,我们是不是可以随便放什么(鞋子、袜子、裤子、衣服等等),而且可以随便放,就会显得非常乱,到时候我们需要拿出来的时候都不方便。
但是,如果我们在放东西的时候,先给箱子贴一个标签,只能标签这一类的,衣服一个箱子、袜子一个箱子、衣服一个箱子,到时候我们需要什么物品,就可以在那个物品的箱子里找,就不要到处乱找,既可以方便我们储存东西,有可以提高查找效率。
所以说,如果我要装什么东西,只要在箱子(class或方法)上贴一个标签(类型参数)就行了,然后就可以装(调用)物品。
泛型:
- "参数化类型",将类型由具体的类型参数化,把类型也定义成参数形式(称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。
泛型是 Java SE5 出现的新特性,
泛型的本质:【类型参数化】或【参数化类型】
泛型的用处:参数类型可以用在类、接口和方法。用<E,K,V>,来限制。
泛型的特色:在不创建新的类型的情况下,通过泛型指定的不同类型数据来控制形参具体限制的类型。
为什么要用泛型呢?
- 多种数据类型执行相同的代码,使用泛型可以复用代码。
- 用泛型编写的代码,比用 Object 变量再进行强制类型转换的代码,具有更好的安全性和可读性
- 在编辑器中提前做类型检查,增加代码的可读性和稳定性
例如:在集合类中使用泛型,取出和操作元素时无需进行类型转换,避免出现 java.lang.ClassCastException 异常