SequenceInputStream没有采用枚举参数

时间:2013-09-07 11:45:41

标签: java

我是java技术的新手。所以我在下面的代码中尝试使用SequenceInputStreamI,但我无法找到确切的问题,请帮助

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()x      SequenceInput)的实例。

我没有得到确切的问题。

否则我使用了new Vector().add(),它与sequenceInputStream一起正常运行。想知道上面的代码。我在哪里弄错了。

提前致谢。

2 个答案:

答案 0 :(得分:1)

要在不需要封闭实例的情况下访问您的课程,您必须将其设为static

public static class MyEnum implements Enumeration {
    ...
}

答案 1 :(得分:0)

检查

import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.Enumeration;

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 static 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++];
    }



}
}