欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java的泛型方法怎么写(讲述java泛型的好处)

程序员文章站 2022-03-07 20:13:13
一般的类和方法,只能使用具体的类型,要么是基础数据类型,要么是自定义类。如果要编写可以应用与多种类型的代码,这种刻板的限制对代码的束缚就会很大。泛型的字面概念:适合用于许多类型。在面向对象中,多态算是...

一般的类和方法,只能使用具体的类型,要么是基础数据类型,要么是自定义类。

如果要编写可以应用与多种类型的代码,这种刻板的限制对代码的束缚就会很大。

java的泛型方法怎么写(讲述java泛型的好处)

泛型的字面概念:

适合用于许多类型。

在面向对象中,多态算是一种泛化机制。

泛型的使用例子:

在如图的例子中t就是类型参数

java的泛型方法怎么写(讲述java泛型的好处)

当你创建holder对象时,必须指明想持有什么类型的对象,将其置于尖括号内,就像main()中那样。然后,你就只能在holder中存入该类型(或其子类,以为多态与泛型不冲突)的对象了。并且,在你从holder中取出它持有的对象时,自动地就是正确的类型。

java泛型核心概念:

告诉编译器想要什么类型,让后编译器帮你处理一切细节。

一般而言,你可以认为泛型与其他的类型差不多,只不过他们碰巧有参数罢了。

java泛型中的标记符含义:

e – element (在集合中使用,因为集合中存放的是元素)

t – type(java 类)

k – key(键)

v – value(值)

n – number(数值类型)

? – 表示不确定的java类型

s、u、v – 2nd、3rd、4th types

使用泛型遇到的问题

1.任何基础数据类型都不能作为类型参数:

学习泛型你会发现,java泛型的限制之一,不能间基础数据类型用作类型参数。

2.事项参数化接口:

一个类不能同时实现同一个泛型接口的两种变体,由于擦除的原因,这两个变体会成为相同的接口。

3.转型和警告

使用带有泛型类型参数的转型或instanceof不会有任何效果。

4.重载

有与擦除的原因,重载方法将产生相同的类型签名。

5.基类劫持了接口

java的泛型方法怎么写(讲述java泛型的好处)

java中使用泛型最吸引人的地方就是在容器类中,包括list,各种set,各种map。

泛型优点:

当一个对象被放置在容器中时,这个对象会北向上转型为object,因此你会丢失类型信息。java如果类型放置错误导致取出的时候会进行强制类型转换,会得到一个runtimeexception,虽然你能发现问题,当时是在运行时发现的而非在编译发现它的。引入泛型并不会让你误用放入容器中的对象。