易截截图软件、单文件、免安装、纯绿色、仅160KB

浅谈Java泛型编程

 
浅谈Java泛型编程
1 引言在JDK 1.5中,几个新的特征被引入Java语言。其中之一就是泛型(generics)。泛型(generics,genericity)又称为“参数类型化(parameterized type)”或“模板(templates)”,是和继承(inheritance)不同而互补的一种组件复用机制。继承和泛型的不同之处在于——在一个系统中,继承层次是垂直方向,从抽象到具体,而泛型是水平方向上的。当运用继承,不同的类型将拥有相同的接口,并获得了多态性;当运用泛型,将拥有许多不同的类型,并得以相同的算法作用在它们身上。因此,一般说来,当类型与实现方法无关时,使用泛型;否则,用继承。
泛型技术最直接联想到的用途就是建立容器类型。下面是一个没有使用泛型技术的例子: List myIntList = new LinkedList();// 1 myIntLikst.add(new Integer(0));// 2 Integer x = (Integer)myIntList.iterator().next();// 3 显然,程序员知道究竟是什么具体类型被放进了myIntList中。但是,第3行的类型转换(cast)是必不可少的。因为编译器仅仅能保证iterator返回的是Object类型。要想保证将这个值传给一个Integer类型变量是安全的,就必须类型转换。除了使代码显得有些混乱外,类型转换更带来了运行时错误的可能性。因为程序员难免会犯错误。使用了泛型技术,程序员就可以确切地表达他们的意图,并且把myIntList限制为包含一种具体类型。下面就是前一个例子采用了泛型的代码段: List<Integer> myIntList = new LinkedList<Integer>();// 1 myIntLikst.add(new Integer(0));// 2 Integer x = myIntList.iterator().next();// 3 List<Integer>指出了这不是一个随意的List,而是一个Integer的List。我们说List是一个带有类型参数的泛型接口,在这里就是指Integer。现在,我们在第1行里使用Integer作为类型参数,而不是在第3行里做类型转换。这样,在编译时刻,编译器就能够检查程序的正确性——无论何时何地,编译器都将保证myIntList的正确使用。相反地,类型转换仅仅告诉我们——在这里,程序员认为这样做是对的。采用泛型可以增强代码可读性和健壮性(robustness)。
 
 
2 定义泛型 public interface List<E> {    void add(E x);    Iterator<E> iterator(); } public interface Interator<E> {    E next();    boo


相关文档:

java入门

 Java学习从入门到精通 
一、 JDK (Java Development Kit) 
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......

java 框架选择

    淘宝用开源,微软用自己的东西,金山什么都用,Google、IBM和ORACLE以及JBOSS则全力支持OpenSource,诸多公司,我也不细评
了,从最终产品运行效率看,微软最差,Windows
Live系列的产品慢的不成样(最近几个月才略有改观),反倒是用开源的一个比一个快;看看google和淘宝。所以说,没有什么快慢,只 ......

(1) Java 技术的积累 _Daemon守护线程

 
线程 Thread setDaemon 方法

2009年07月24日 星期五 14:37

Thread setDaemon 方法
import java.io.IOException;
/*
* 守护线程在没有用户线程可服务时自动离开
* 在Java中比较特殊的线程是被称为守护(Daemon)线程的低级别线程。
* 这个 ......

初学java

 关于java平台,开发环境,开发工具的认识
       一开始学经常把三者给混了。平台是一个程序运行的硬件环境。像widows,linux等是操作系统和硬件组成的基于硬件的平台。java平台一个运行在硬件之上的纯软件平台。java平台有两部分组成java虚拟机和java程序设计接口。
  &n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号