java - 即使已初始化,也会出现 "Variable data not initialized"错误

标签 java arrays filereader

我有一段时间没有接触 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/

相关文章:

java - 在 Java 中读取更新时的 SQL 时间戳

java - 在新窗口中弹出警报

java - @PreAuthorize 注解无法解析变量

javascript - HTML5 文件 API : get File object within FileReader callback

java - 为什么元素放入 JSONArray 后它们是混合的?

javascript - 将数组组合成 JavaScript 中的单个对象

arrays - 了解 R 中的数组索引

c - 使用数组计算数字的百分比

javascript - 如何将文件附加到 FormData()?

java - 如何在 Java 中将文件指针重置为文件开头?