网站首页 > 精选教程 正文
一般的类和方法,只能使用具体的类型,要么是基础数据类型,要么是自定义类。
如果要编写可以应用与多种类型的代码,这种刻板的限制对代码的束缚就会很大。
泛型的字面概念:
适合用于许多类型。
在面向对象中,多态算是一种泛化机制。
泛型的使用例子:
在如图的例子中T就是类型参数
当你创建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中使用泛型最吸引人的地方就是在容器类中,包括List,各种Set,各种Map。
泛型优点:
当一个对象被放置在容器中时,这个对象会北向上转型为Object,因此你会丢失类型信息。java如果类型放置错误导致取出的时候会进行强制类型转换,会得到一个RuntimeException,虽然你能发现问题,当时是在运行时发现的而非在编译发现它的。引入泛型并不会让你误用放入容器中的对象。
- 上一篇: 有关Java泛型,这十大知识点你必须知道
- 下一篇: Java基础——泛型 java 泛型 t
猜你喜欢
- 2024-11-06 Java基础-泛型超级详细讲解 java中的泛型指的是什么
- 2024-11-06 Java高级特性—泛型看这一篇就够了
- 2024-11-06 详解Java中的泛型(泛型的语法,擦除机制,泛型的上界)
- 2024-11-06 Java经典语法糖:你真的理解泛型吗?
- 2024-11-06 学习廖雪峰的JAVA教程---泛型(编写泛型,静态方法泛型,多个)
- 2024-11-06 Java泛型机制详解;这些你都知道吗?
- 2024-11-06 Java 泛型 java泛型中?和T的区别
- 2024-11-06 一篇好文章告诉你如何使用Java泛型?
- 2024-11-06 浅谈Java泛型 java 泛型 r
- 2024-11-06 还不懂Java的泛型?只用这一篇文章,保证你面试对答如流
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)