【发布时间】:2015-06-17 00:25:29
【问题描述】:
我已经研究了一段时间了,我确信修复就在我面前,但我只是对它视而不见。有人关心指出为什么我的 int i 给我一个错误?
CacheDownloader 类:
public static void main(String[] args) {
String strFilePath = "./version.txt";
try
{
FileInputStream fin = new FileInputStream(strFilePath);
DataInputStream din = new DataInputStream(fin);
int i = din.readInt();
System.out.println("int : " + i);
din.close();
}
catch(FileNotFoundException fe)
{
System.out.println("FileNotFoundException : " + fe);
}
catch(IOException ioe)
{
System.out.println("IOException : " + ioe);
}
}
private final int VERSION = i;
错误:
CacheDownloader.java:54: error: cannot find symbol
private final int VERSION = i;
^
symbol: variable i
location: class CacheDownloader
【问题讨论】:
-
哪个 int,确切的行是什么?
-
最后一行有错误,找不到“i”的符号
-
错误是什么?还有什么可以在错误消失的情况下注释掉?
-
int i是try块的本地对象,而您试图在try/catch块之外引用它,为什么?显然,这肯定会引起关注 :-) 在这种情况下,请查看在main方法的开头声明和初始化变量i。虽然不相关,但停止使用main方法执行任务,而是将此责任委托给其他方法,只需使用main启动应用程序即可。 -
i在您的主方法之外不可见。