java基础之泛型程序设计
来源:互联网 发布:js取radio选中的值 编辑:程序博客网 时间:2024/05/29 11:35
泛型对于集合类来说尤其有用,如ArrayList就是泛型程序设计的实例,ArrayList有个参数用来指定参数类型。
泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用。
类型参数的魅力在于使得程序具有更好的可读性和安全性。
泛型类:具有一个或多个类型变量的类。
public class Pair<T,U>{};
泛型方法可以定义在普通类中,也可以定义在泛型类中,类型变量放在修饰符的后面,返回类型的前面。
public static <T> T getMiddle(T[] a){};
泛型方法的类型变量可以有多个限定,T extends Comparable & Serializable
表示T是Comparable与Serializable的子类型;
虚拟机没有泛型类型对象,所有对象都属于普通类。
无论何时定义一个泛型类型,相应的原始类型都会被自动提供。原始类型就是泛型类型的类型参数被擦去,
并用其第一个限定类型(没有限定类型的用Object)来替换的与泛型类型同名的类型。
Pair<String>,Pair<Manager>擦除类型后就变成Pair的原始类型了。
java泛型和C++模板有很大不同,C++每个模板的实例化产生不同的类型,这一现象称为“模板代码膨胀”。
一个方法覆盖另一个方法时,可以指定一个更严格的返回类型。
虚拟机中没有泛型,只有普通的类和方法;
所有的类型参数都用它们的边界转换;
桥方法被合成为保持多态的;
为保持类型安全性,必要时加入强制类型转换;
不能用基本类型替换类型参数;
禁止使用参数化类型的数组,
不能实例化泛型的类型参数;
不能在静态域或静态方法中引用类型变量;
无论S与T有什么联系,以S,T作为类型参数实例化的泛型类之间都没有什么联系。
泛型类可以扩展或实现其他的泛型类;
通配符类型:
Pair<?extends Emplyee>
类型参数是Employee的子类;
无限定通配符 Pair<?>;
泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用。
类型参数的魅力在于使得程序具有更好的可读性和安全性。
泛型类:具有一个或多个类型变量的类。
public class Pair<T,U>{};
泛型方法可以定义在普通类中,也可以定义在泛型类中,类型变量放在修饰符的后面,返回类型的前面。
public static <T> T getMiddle(T[] a){};
泛型方法的类型变量可以有多个限定,T extends Comparable & Serializable
表示T是Comparable与Serializable的子类型;
虚拟机没有泛型类型对象,所有对象都属于普通类。
无论何时定义一个泛型类型,相应的原始类型都会被自动提供。原始类型就是泛型类型的类型参数被擦去,
并用其第一个限定类型(没有限定类型的用Object)来替换的与泛型类型同名的类型。
Pair<String>,Pair<Manager>擦除类型后就变成Pair的原始类型了。
java泛型和C++模板有很大不同,C++每个模板的实例化产生不同的类型,这一现象称为“模板代码膨胀”。
一个方法覆盖另一个方法时,可以指定一个更严格的返回类型。
虚拟机中没有泛型,只有普通的类和方法;
所有的类型参数都用它们的边界转换;
桥方法被合成为保持多态的;
为保持类型安全性,必要时加入强制类型转换;
不能用基本类型替换类型参数;
禁止使用参数化类型的数组,
不能实例化泛型的类型参数;
不能在静态域或静态方法中引用类型变量;
无论S与T有什么联系,以S,T作为类型参数实例化的泛型类之间都没有什么联系。
泛型类可以扩展或实现其他的泛型类;
通配符类型:
Pair<?extends Emplyee>
类型参数是Employee的子类;
无限定通配符 Pair<?>;
- java基础之泛型程序设计
- Java基础之程序设计基础
- java基础----泛型程序设计
- Java基础[8]泛型程序设计
- Java程序设计基础之异常处理
- Java程序设计基础之异常处理
- Java程序设计基础之异常处理
- Java程序设计基础之异常处理!!
- JAVA基础【8.1】《Java核心技术1》泛型程序设计-泛型
- java泛型程序设计之泛型类
- java核心技术卷 之泛型程序设计
- java基础系列之三:java的面向对象程序设计
- 实战java高并发程序设计第之java并发基础
- 程序设计基础之:数组
- 程序设计基础之:字符串
- MATLAB 基础之程序设计
- Java Applet程序设计基础
- Java Applet程序设计基础
- COJ 1383 Small Change
- 十进制数转换为二进制数的除2取余法和乘2取整法的依据
- Linux时间函数详解(转)
- Android中Context详解——你所不知道的Context
- 今天开通了博客
- java基础之泛型程序设计
- 进程和线程
- ZeroMQ,史上最快的消息队列
- #(Linux)Ubuntu使用# 压缩与解压tgz格式文件
- Scoop Water
- 【转载】leetcode中的backtracking
- [每日一题] 11gOCP 1z0-053 :2013-10-2 virtual private catalogs.......................................13
- hdu 4768
- 黑马程序员 --- Collection 和 泛型