java中在静态上下文中不能引用非静态变量的问题(100分)

  • 主题发起人 主题发起人 xuyingfeng
  • 开始时间 开始时间
X

xuyingfeng

Unregistered / Unconfirmed
GUEST, unregistred user!
请看以下代码
package Socket.File_Loader;
import java.io.*;
public class test_compareto {
FileInputStream fi;
static String teststr;
public void test_compareto() {
}
public static void main(String args[])
{
try
{
fi=new FileInputStream("c:/test.txt");
}
catch(IOException e)
{
}
byte[] filebyte=new byte[8196];
for (int i=0;;i++)
{
int ch=-1;
try
{
ch=fi.read();
}
catch (IOException e){}
if (ch==-1) break;
filebyte=(byte)ch;
}
teststr=filebyte.toString();
System.out.println(teststr);
}
}
用javac编译时出现
javac Socket/File_loader/test_compareto.java
Socket/File_loader/test_compareto.java:22: 在静态上下文中不能引用非静态变量 fi
fi=new FileInputStream("c:/test.txt");
^
Socket/File_loader/test_compareto.java:33: 在静态上下文中不能引用非静态变量 fi
ch=fi.read();
^
请问如何解决??
 
main为静态方法,其中只能引用类的静态成员或常量 。

FileInputStream fi;
定义到
public static void main(String args[]){
FileInputStream fi;


} 中
或将 fi声明为static,不过没必要!
 
接受答案了.
 
后退
顶部