java - SequenceInputStream 不采用枚举参数

标签 java

我是java技术的新手。所以我正在经历SequenceInputStream我尝试了下面的代码,但我无法找到确切的问题,请有人帮助

public class SequenceInput {


public static void main(String[] args) throws IOException {

    Enumeration e=new MyEnum();
    SequenceInputStream sin=new SequenceInputStream(e);
    DataInputStream din=new DataInputStream(sin);

    String s="";
    while(null !=s) {
        s=din.readLine();

        if(null !=s) {
            System.out.println(s);
        }
    }
    din.close();
//      new Vector().elements();




}


//Enumeration Class

public class MyEnum implements Enumeration{

    InputStream in[];
    int i=0;

    public  MyEnum(){
    try {
        in=new InputStream[] {new FileInputStream("src/a1.txt"),new FileInputStream("src/a2.txt"),new FileInputStream("src/a3.txt"),new FileInputStream("src/a4.txt")};
    }
    catch(Exception e) {

    }


}

    @Override
    public boolean hasMoreElements() {
        if(in.length<=4) {
            return true;
        }
        else
        return false;
    }

    @Override
    public Object nextElement() {

        return in[i++];
    }



}
}

在这一行中Enumeration e=new MyEnum();它正在显示 - 无法访问 SequenceInput 类型的封闭实例。必须符合资格 使用 SequenceInput 类型的封闭实例进行分配(例如 x.new A(),其中 xSequenceInput 的实例)。

我没有得到确切的问题。

否则我使用了new Vector().add()并且它与sequenceInputStream一起工作得很好。想知道上面的代码..我在哪里犯了错误。

提前致谢。

最佳答案

要在不需要封闭实例的情况下访问您的类,您必须将其设为静态

public static class MyEnum implements Enumeration {
    ...
}

关于java - SequenceInputStream 不采用枚举参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18672953/

相关文章:

Java 图形对象和滚动 - 最简单的方法?

java - Gradle 不允许添加 '-processor' java(1.8) 编译器参数

java - 使用 Web 服务客户端 JAXB 生成的类作为 JPA 实体

java - 从Java 8对象列表中获取具有最大日期属性的对象

java - AtomikosSQL异常 : Transaction is marked for rollback only or has timed out

java - 为什么案例 1 中的 Interface 会抛出编译时错误,而案例 2 中的 Interface 会编译成功

java - 如何初始化一个Hashmap的arraylist?

java - 测验 - 我如何提出保存在数组中的问题,以便使用方法中的循环来回答?

java - 在 Java 中将单词转换为数字

java - 如何使用 dev/prod 配置覆盖 gradle 构建