黑马程序员技术交流社区

标题: 如何将Enumeration实例化 [打印本页]

作者: 孙传磊    时间: 2013-3-11 10:39
标题: 如何将Enumeration实例化
在用下面方法实例化Enumeration时,
Enumeration<FileInputStream> en=new Enumeration<FileInputStream>();
报错提示是:不能实例化类型 Enumeration<FileInputStream>我查了一下java的API文档
Enumeration是接口只有方法摘要
boolean hasMoreElements()
          测试此枚举是否包含更多的元素。
E nextElement()
          如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素
必须要自己写类继承该接口才能实例化枚举对象呢?还是有别的方法?
因为在SequenceInputStream(Enumeration<? extends InputStream> e) 初始化新创建 SequenceInputStream的对象时,该参数必须是生成运行时类型为 InputStream 对象的 Enumeration 型参数。
作者: 张宁    时间: 2013-3-11 17:06
Enumeration是一个旧的类,但是在JDK 1.5之后为Enumeration类进行了扩充,增加了泛型的操作应用。主要方法就是你说的那两个方法,方法的功能与Iterator类似,只是Iterator中存在删除数据的方法,而此接口并不存在删除操作,而且可以发现,这里方法名称的定义要比Iterator中的方法名称更长。
要想使用此接口可以通过Vector类
给你看个实例化的例子。
  1. package org.lxh.demo13.iteratordemo;  
  2. import java.util.Enumeration;  
  3. import java.util.Vector;  
  4. public class EnumerationDemo01 {  
  5.     public static void main(String[] args) {  
  6.         Vector<String> all = new Vector<String>();
  7. // 只能使用Vector  
  8.         all.add("hello");                       
  9. // 增加元素  
  10.         all.add("_");                             
  11. // 增加元素  
  12.         all.add("world");                        
  13. // 增加元素  
  14.         Enumeration<String> enu = all.elements();  
  15. // 实例化  
  16. Enumeration  
  17.         while (enu.hasMoreElements()) {        
  18. // 循环输出  
  19.             System.out.print(enu.nextElement() + "、");
  20. // 输出元素  
  21.         }  
  22.     }  
  23. }
复制代码

作者: 孙传磊    时间: 2013-3-12 13:46
张宁 发表于 2013-3-11 17:06
Enumeration是一个旧的类,但是在JDK 1.5之后为Enumeration类进行了扩充,增加了泛型的操作应用。主要方法 ...

还有别的方法吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2