java - 值始终为空

标签 java arraylist null

我写的这段代码显然是正确的。问题是变量 temp 始终为空。在第一个循环中,程序应该输入第二个语句,但这种情况没有发生。为什么?

ArrayList<Pair<Float, Float>> tmp = new ArrayList<>();    
for (int i=0; (line = reader.readLine()) != null; i++) {
        Float temp = null;
        if (line.equals("----")) {
            i = 0;
            points.add(tmp);
            tmp = new ArrayList<>();
        } else if (i%2 == 0) {
            temp = Float.parseFloat(line);
        } else {
            tmp.add(new Pair<Float, Float>(temp, Float.parseFloat(line)));
            System.out.println("LINE: "+tmp.get(0).first);
        }
    }

PS:即使 IDE 也说 temp 值始终为 null

最佳答案

您在 for 循环内声明 Float temp = null;。因此,当循环迭代开始时,它将始终设置为 null。即使您点击第二条语句,temp 也会获取一个值,但随后会立即被丢弃并使用值 null 重新创建。

尝试在循环之前声明Float temp = null

关于java - 值始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57575578/

相关文章:

java - 语法查询异常,对象无法映射

Java - 将用户输入添加到 ArrayList,需要用另一个 ArrayList 中的变量分隔

java - 如何使用集合添加列表(字符串数组)和arrayList?

arrays - 无法索引到空数组

c - C 是否支持可选的空参数?

java - 如何为 IBM Watson Speech2text 服务指定语音关键字?

Java - 如何在同一目录中没有类的情况下访问 Excel 资源?

java - while 循环的哨兵值

java - 如何对对象的数组列表进行排序

php - MySQL NOT NULL 不适用于 PHP