基础知识(12)- 泛型程序设计

12.1 为什么要使用泛型程序设计 
12.2 定义简单泛型类 
12.3 泛型方法 
12.4 类型变量的限定 
12.5 泛型代码和虚拟机 
  12.5.1 翻译泛型表达式 
  12.5.2 翻译泛型方法 
  12.5.3 调用遗留代码 
12.6 约束与局限性 
  12.6.1 不能用基本类型实例化类型参数 
  12.6.2 运行时类型查询只适用于原始类型 
  12.6.3 不能创建参数化类型的数组 
  12.6.4 Varargs警告 
  12.6.5 不能实例化类型变量 
  12.6.6 泛型类的静态上下文中类型变量无效 
  12.6.7 不能抛出或捕获泛型类的实例 
  12.6.8 注意擦除后的冲突 
12.7 泛型类型的继承规则 
12.8 通配符类型 
  12.8.1 通配符的超类型限定 
  12.8.2 无限定通配符 
  12.8.3 通配符捕获 
12.9 反射和泛型 
  12.9.1 使用Class参数进行类型匹配

12.9.2 虚拟机中的泛型类型信息 

时间: 2024-10-03 23:07:02

基础知识(12)- 泛型程序设计的相关文章

12 泛型程序设计

为什么要使用泛型程序 泛型程序设计, 意味着编写的代码可以被很多不同类型的对象所重用. 例如, 我们并不希望为聚集String和File对象分别设计不同的类, 实际上,也不需要这样做, 因为一个ArrayList类可以聚集任何类型的对象, 这是一个泛型程序设计的实例. 没有泛型以前, ArrayList维护的时一个object类型的数组, 这样当获取一个值时, 必须使用强制类型转换. (并非类型判断, 而是强制的类型转换) 简单的泛型类定义 public class Pair<T> { pub

Java语言的基础知识12

第十四章(使用集合类保存对象) 1.java中得集合对象就像是一个容器,它用来存放Java类的对象.Java中的集合类有些方便存入和取出,有些则方便查找.集合类和数组的区别是,数组的长度是固定的,集合的长度是可变的,数组用来存放基本类型,集合用来存放对象的引用.常用的集合类有List集合,Set集合,和Map集合. 2.List集合包括List接口以及List接口的所有实现类.List集合中的元素许重复,个元素的顺序就是对象插入的顺序.类似java中的数组.List类继承了Collection接

黑马程序员——集合基础知识(泛型)

集合:泛型基础知识 泛型.(泛型就是类型参数化,默认的时object,虽然不用强制类型转换,这个就要你自己去写特性方法,比如compareto是string的特有方法吧,你可以写但是父类肯定调用不了) itnex t对象都是obj要使用对象的特性功能必须强.编译的时候没问题,因为都不知道你会传什么对象,你橙子也可以当作apple来传,设计的时候并不知道! 泛型作用.1.用于解决安全问题.运行时期出现的问题classcastexception转移到编译时期.2.迭代器里面的itnext()不用强转

java基础知识之图形程序设计-1

经过一段时期java语法的学习,从现在开始,我将进行图形用户界面(GUI)的java程序学习.以下是我对此的一点学习笔记. 在java1.0出现初期,采用了AWT库处理用户界面元素.随着时代发展,对于用户界面元素的要求提高,不同平台操作行为有偏差等原因,AWT显而易见已经过时.在此之后,Swing库顺理成章面世,并沿用至今.在这里,抛却Swing库的其他复杂理念,我们只对显示窗口和绘制内容的基本知识进行学习. 一.框架构造 java中,将未包含在其他窗口的顶层窗口称为框架.AWT库中包含一个Fr

C#基础知识之泛型

泛型在c#中有很重要的位置,对于写出高可读性,高性能的代码有着关键的作用. 其实官方文档说明的很详细,我这边算是做个记录吧 一.什么是泛型? 泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个非常重要的新功能. 泛型(Generic) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候.换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法.您可以通过数据类型的替代参数编写类或方法的规范.当编译器遇到类的构造函数或方法的函数调用时,它会生

(整理)C#基础知识_泛型的实现

本文是截取自MSDN的文章部分,方便自己查看,原文地址:https://msdn.microsoft.com/zh-cn/library/ms379564(VS.80).aspx 泛型实现 表面上,C# 泛型的语法看起来与 C++ 模板类似,但是编译器实现和支持它们的方式存在重要差异.正如您将在后文中看到的那样,这对于泛型的使用方式具有重大意义. 注 在本文中,当提到 C++ 时,指的是传统 C++,而不是带有托管扩展的 Microsoft C++. 与 C++ 模板相比,C# 泛型可以提供增强

linux云自动化运维基础知识12(不同系统之间的文件传输)

####1.文件归档####1.文件归档,就是把多个文件变成一个归档文件2.tar    c        ##创建    f        ##指定归档文件名称 t        ##显示归档文件中的内容 r        ##向归档文件中添加文件 --get        ##取出单个文件 --delete    ##删除单个文件 x        ##取出归档文件中的所有内容 -C        ##指定解档目录    -z        ##gz格式压缩    -j        ##b

【Objective-C基础知识-12】OC语法特性 -- 块语法

一.基本概念 Block:块语法,本质上是匿名函数(没有名称的函数),苹果推荐的类型,效率高,用来封装和保存代码,BLOCK可以在任何时候执行. 标准C里面没有Block,C语言的后期扩展版本,加入了匿名函数,C++.JS.Swift等语言,有类似语法,叫做闭包. Block语法和函数指针很相似. Block和函数的相似性:(1)可以保存代码(2)有返回值(3)有形参(4)调用方式一样. Block就是一个匿名函数,它是OC对于闭包的实现,在块状中我们可以持有或引用局部变量,同时利用Block你

2017-11-17Linux基础知识(12)用户和组的管理命令

在上一章中我们讲述了通配符(bash globing)以及IO重定向及管道,以及介绍了用户管理的基本概念,主要讲述了其用户类别和组类别及管理用户和组的数据库文件,在用户类别当中分为管理员和普通用户这两个大类,而普通用户又分为系统用户和登录用户这个两类.之后在组类别当中介绍了其管理组和普通用户组还有一个组类别是基本组和附加组,最后一个组类别为似有组和公共组,那么接下来我们讲述Linux用户和组的管理命令. 一.安全上下文 我们都知道,所有的进程都是使用发起者的身份来运行,那么对于操作系统来讲,所谓

linux基础知识-12

一.目录权限 前面学习了文件的权限rwx,对于文件来说可以阅读文件的内容(r),修改文件内容(w),把文件当作为脚本或应用程序执行(x).对于目录呢? linux中目录也是一种文件,与常规文件不同: r权限:表示可以浏览目录中的内容,即用ls可以查看目录中的内容. w权限:表示可以在目录中添加文件和删除文件,即可写权限. x权限:由于目录与执行没有关系,但为了统一我们也叫执行权限.表可可以搜索这个目录中的文件及可以进入目录中. 没有了x权限,老陌测试中发现:进不了目录中,ls 目录时能看到目录中