文档介绍:JAVA第1章泛型 JAVA2 核心技术 Java Java 课程组课程组课时安排&课程目标?课时安排?6学时?课程目标?了解 出现泛型的相关的概念?能够使用带有泛型的类?了解泛型接口、泛型方法、通配符和受限泛型?了解泛型在使用过程中的限制 Contents 泛型概述 1 泛型类 2 泛型接口 3 受限泛型 4 通配符 5 泛型方法 6 泛型概述?概念: ?泛型( Generics ):本质上是提供类型的“类型参数”,也称为参数化类型(parameterized type) 或参量多态(parametric polymorphism) ?为什么使用泛型: ?希望编写的代码能被很多不同类型的对象所重用,但又要避免类型任意化所带来的麻烦,比如插入类型出错、强制转换等? 以前的解决方案—使用 Object 实现重用? 以后的解决方案—使用泛型?不使用泛型,使用 Object 类的例子? ?使用泛型的例子? 泛型类?泛型类:具有一个或多个类型参数的类?定义格式: class 类名<类型变量参数>{ …….}?注意: ? class GenericGroup<E> GenericGroup<String> gGroup=new GenericGroup<String>(); ?命名****惯:用大写字母单个字符命名形式类型参数形式类型参数实际类型参数?泛型类的局限?类型参数不能实例化? E a=new E(); ?不能实例化类型参数的数组? E elements= new E[10]; ?类的静态变量不能声明为类型参数类型? static E a; ?泛型类不能继承自 Throwable 以及其子类? class Test<E> extends Throwable{ } ?注意: ?多个类型参数的泛型类应注意避免二义性错误?例如: class TwoGen<T,V>{ …. void set(T one){ } void set(V two){ } } 泛型接口?声明格式: interface 接口名<类型变量参数>{ …….}?例子: ? Person 类实现了 Max<E> 泛型接口,主类 UseGI 使用 Person 类对象,得出两者中年龄较大的那个对象? 受限泛型?受限的含义: ?指类型参数的取值范围是受到限制的?实现格式: ?例如: class Gen<E extends Number>