A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙传磊 中级黑马   /  2013-3-11 10:39  /  1785 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在用下面方法实例化Enumeration时,
Enumeration<FileInputStream> en=new Enumeration<FileInputStream>();
报错提示是:不能实例化类型 Enumeration<FileInputStream>我查了一下java的API文档
Enumeration是接口只有方法摘要
boolean hasMoreElements()
          测试此枚举是否包含更多的元素。
E nextElement()
          如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素
必须要自己写类继承该接口才能实例化枚举对象呢?还是有别的方法?
因为在SequenceInputStream(Enumeration<? extends InputStream> e) 初始化新创建 SequenceInputStream的对象时,该参数必须是生成运行时类型为 InputStream 对象的 Enumeration 型参数。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

2 个回复

倒序浏览
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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
张宁 发表于 2013-3-11 17:06
Enumeration是一个旧的类,但是在JDK 1.5之后为Enumeration类进行了扩充,增加了泛型的操作应用。主要方法 ...

还有别的方法吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马