易截截图软件、单文件、免安装、纯绿色、仅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基础技术知识复习
一、    计算机基础知识:包括数据结构中的基本算法,计算机网络的OSI,TCP/IP模型。
 
计算机网络的OSI:OSI(Open System Interconnnection OSI)开放式系统互连,       是由国际化标准组织(ISO)制定的标准化开放式的计算机网络层次结构模型 ......

JAVA WEB程序中添加定时器

 
//这是我的定时器类,用来定时执行某段任务;
package com.my.time;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
public
 
class
 BugXmlTimer  {
   
public ......

java对数据库中NULL的处理

 java中null的概念:java中,null表示类或变量是空,不代表任何对象或实例,可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。数据库中NULL的概念:数据库中,null表示未填写、未知、不可用的概念,和java不同的是数据库中可以将null赋给任何数据类型。这样一来,我们从数据库中读取字段的值后,在java程序 ......

java 线程

 
线程的创建和启动
      
java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号