我有一段时间没有接触 Java,所以我对一些细节有些生疏。
我正在尝试从一个充满数字的文件中读取所有内容。文件中的第一个数字告诉我文件中还有多少其他数字,以便我可以适当调整数组大小。我试图获取这些数字并将它们放入一个整数数组中,但我在返回语句中不断收到“错误:变量数据可能尚未初始化”。我知道这必须是简单的事情,但我无法终生找出我做错了什么简单的事情。
public static int[] numbers(String filename)
{
int[] data;
try
{
FileReader input = new FileReader(filename);
BufferedReader buffer = new BufferedReader(input);
int arraySize = Integer.parseInt(buffer.readLine());
data = new int[arraySize];
for (int x = 0; x < arraySize; x++)
{
data[x] = Integer.parseInt(buffer.readLine());
}
buffer.close();
}
catch(Exception e)
{
System.out.println("Error reading: "+e.getMessage());
}
return data;
}
最佳答案
如果在 try
block 中抛出异常,则 data
可能在返回时尚未初始化。
在声明时将其初始化为某些内容,即使值为 null
,以满足编译器要求。
另一方面,IOException
似乎是此处抛出的唯一异常。或者,您可以将您的方法声明为抛出 IOException
,并删除 try
-catch
block ,以便 data
如果 return
语句被执行, > 总是被初始化。您当然需要在调用您的 numbers
方法的方法中捕获异常。
关于java - 即使已初始化,也会出现 "Variable data not initialized"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29130385/