我是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
一起正常运行。想知道上面的代码。我在哪里弄错了。
提前致谢。
答案 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++];
}
}
}