《数据结构与抽象:Java语言描述(原书第4版)》一JI1.1 泛型数据类型

简介:

本节书摘来华章计算机《数据结构与抽象:Java语言描述(原书第4版)》一书中的第1章 ,第1.1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. Henry) 著 罗得岛大学  新英格兰理工学院 辛运帏 饶一梅 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

JI1.1 泛型数据类型

泛型能让你在类或接口的定义中写一个占位符,而不是实际的类类型。占位符是泛型数据类型(generic data type),也可以简称为泛型(generic type)或类型参数(type parameter)。当定义一个其实例保存不同数据集合的类时,不需要给出这些集合中对象的具体数据类型。而是使用泛型数据类型替代实际的数据类型,定义一个泛型类(generic class),由客户选择集合中对象的数据类型。
如附录B所提到的,类Object是所有其他类的最终的祖先。给定指向任意类型对象的一个引用,可以将这个引用赋给Object类型的变量。虽然可能试图将Object用作泛型类,但不应该这样做。而是应该使用泛型数据类型来表示任意的类类型。
假定有对象数组A。如果A的数据类型声明为Object[],就可以将对象,比方说字符串,放到数组中。但是,没有办法阻止你将多个其他类的对象与字符串一起放到数组中。听上去这或许挺吸引人的,但使用这样的数组可能有问题。例如,如果从数组中删除一个对象,你不知道它的动态类型是什么。它是字符串还是某个其他类型的对象?不过,方法能获取对象的动态类型,所以这样的数组还是可以使用的。
相反,由泛型变量指向的项的数组或任何其他的组,可能仅含有因继承而相关的类的对象。所以,使用泛型,可以限制集合中项的类型。这个限制很正常,因为它使得这些集合易于使用。

相关文章
|
13天前
|
JavaScript Java 编译器
Java包装类和泛型的知识点详解
Java包装类和泛型的知识点的深度理解
|
13天前
|
存储 Java
Java中的基本数据类型有哪些?它们的大小和取值范围是多少?
Java基础数据类型:4种整型(byte[-128,127],short[-32,768,32,767]),2种浮点(float,double),1种字符(char,Unicode),1种布尔(true,false)。
17 0
|
28天前
|
存储 算法 Java
Java数据结构与算法-java数据结构与算法(二)
Java数据结构与算法-java数据结构与算法
82 1
|
1天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
1天前
|
存储 安全 Java
每日一道Java面试题:说一说Java中的泛型?
今天的每日一道Java面试题聊的是Java中的泛型,泛型在面试的时候偶尔会被提及,频率不是特别高,但在日后的开发工作中,却是是个高频词汇,因此,我们有必要去认真的学习它。
5 0
|
6天前
|
存储 供应链 Java
《Java 简易速速上手小册》第3章:Java 数据结构(2024 最新版)
《Java 简易速速上手小册》第3章:Java 数据结构(2024 最新版)
4 1
|
6天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
7天前
|
人工智能 前端开发 Java
Java语言开发的AI智慧导诊系统源码springboot+redis 3D互联网智导诊系统源码
智慧导诊解决盲目就诊问题,减轻分诊工作压力。降低挂错号比例,优化就诊流程,有效提高线上线下医疗机构接诊效率。可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室。
145 10
|
11天前
|
Java Android开发 C++
Kotlin vs Java:选择最佳语言进行安卓开发
【4月更文挑战第13天】Java曾是安卓开发的主流语言,但Kotlin的崛起改变了这一局面。Google在2017年支持Kotlin,引发两者优劣讨论。Java以其成熟稳定、强大生态和跨平台能力占优,但代码冗长、开发效率低和语言特性过时是短板。Kotlin则以简洁语法、空安全设计和高度兼容Java脱颖而出,但社区和生态系统仍在发展中,可能存在学习曲线和性能问题。选择语言应考虑项目需求、团队熟悉度、维护性、性能和生态系统。无论选择哪种,理解其差异并适应新技术至关重要。